问题标签 [libharu]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
390 浏览

fonts - 条码字体在 LibHaru PDF lib 中不起作用

我正在尝试在 libharu 中使用条形码字体(ADVC128C.TTF),但它没有打印(throwing exception - Unsupported ttf format)。我曾经HPDF_LoadTTFontFromFile()加载字体文件。
我们如何使用 LibHaru pdf 库打印条形码?你能帮我解决这个问题吗?

谢谢和问候,桑托什·卡达姆。

0 投票
0 回答
214 浏览

fonts - 如何在 C++ 中使用字体文件名获取字体的代码页

我有字体文件名。我必须在运行时设置代码页才能在 LibHaru PDF lib 中获取 HPDF_Font 句柄。目前,它正在使用 CP1252 代码页。我们需要来自其他代码页的支持字体。

代码片段:

有没有办法通过使用字体文件名来获取代码页?或者有没有其他方法可以在运行时获取代码页?

0 投票
1 回答
284 浏览

c++ - 使用 libharu 在 pdf 中打印日文字符

目前我正在使用 libharu 创建 pdf 文件。在文件中,我有一些日文字符,它们首先保存为 utf-8。

之后,我使用 HPDF_UseJPEncodings(m_pdf)、HPDF_UseJPFonts(m_pdf) 和 m_fontStandard = HPDF_GetFont(m_pdf, "MS-Mincho", "90msp-RKSJ-H") 进行编码。

但是,90msp-RKSJ-H 是 cmap 而不是 utf-8,有谁知道如何将 utf-8 转换为 90msp-RKSJ-H 的 cmap?

谢谢

0 投票
1 回答
1356 浏览

c++ - LibHaru 中的文本换行

我正在为一些与使用 LibHaru 生成 PDF 相关的项目开发工作。我计划在特定区域中放置一些文本。我用过TextRect(),但我在文字换行方面遇到了一些麻烦。

  1. 如果文本的宽度大于矩形的宽度,则矩形变为空白。我该如何摆脱它?
  2. 我尝试编写自己的文本换行或拆分字符串函数,该函数在特定数量的字符后添加空格,但即使在特定限制后似乎也失败了。有关文本换行功能的任何帮助。
  3. 如何计算适合矩形特定宽度的文本宽度?

以下是拆分字符串函数的代码片段:

  • iLength: 我想分割的长度。
  • iAddedCnt:在几个字符后添加空格后的字符串计数。
0 投票
0 回答
273 浏览

c++ - 如何在 Visual Studio 2013 版本中安装“libharu”库?

我正在使用 C++ 将文件转换为 PDF,我从其网站下载了 libharu 文件,但不知道下一步该做什么。我无法使用命令“nmake -f script/Makefile.msvc”。

0 投票
0 回答
118 浏览

printing - LibHaru:如何画一条精确的一英寸线

以下是我使用默认 DPI 级别 (72dpi) 打印长度为 1 英寸的行的代码片段。

page.moveTo(5, 20); page.lineTo(72, 20);

但是当我打印出来时,线条小于 1 英寸。(大约 2.24 厘米而不是 2.54 厘米)

0 投票
1 回答
321 浏览

c++ - 如何在 libharu 中将 Qt 资源用于 ttf 字体?

我正在创建一个使用libharu编写 pdf 文件的 Qt 应用程序。pdf 文件中使用的 true-type-font 应嵌入到二进制文件中,因此在所有平台上都可用。为此,我想使用 Qt 资源系统。

字体文件应该使用如下

我希望将文件名和路径替换为资源名称(例如:/fonts/myfont.ttf)。有没有办法做到这一点?

我想到的选项:

  • 以某种方式将文件内容作为字符串或字符数组传递(如这里所建议的那样。这是不可能的,因为libharu中的函数需要文件名。没有需要实际文件内容的功能。
  • 将资源内容保存到临时文件中,在libharu函数中使用临时文件名。

还有其他更简单的解决方案吗?谢谢。

解决方案:

实际上,第二种选择比预期的要容易。通过robin.thoni这个问题的回答,我得到了这个非常简单的解决方案:

0 投票
1 回答
8205 浏览

cmake - 使用调试符号和 cmake 编译项目的正确方法

CMAKE_BUILD_TYPE当我想获取调试或发布项目构建时,建议将这里作为参数传递给 cmake。我正在尝试用 cmake 编译libharu,我想用调试符号编译它。我搜索了libharu中包含的 CMakeLists.txt 中的以下字符串:

但我什么也没找到。我的问题是,如果指定libharuCMAKE_BUILD_TYPE的 CMakeLists.txt何时没有提及它是否有意义?如果没有,我如何使用调试符号编译libharu ?

PS:我注意到使用 cmake 为 Visual Studio 2013 生成的项目设置了 Debug/Win32,这就足够了吗?在 CMakeLists.txt 的什么地方指定了这个信息?

PPS:我想这个问题很大程度上取决于特定的项目,但一般来说有什么方法可以做到这一点吗?我的意思是,CMAKE_BUILD_TYPE=Debug总是创建调试版本还是我应该注意的其他事情?

谢谢

0 投票
2 回答
220 浏览

c++ - 如果 lib 的路径已知,为什么要在 Visual Studio 中指定特定的库?

TL / DR:问题从我已经完成并且我认为重要的步骤开始(让我知道它是否不重要,我将删除它)。问题本身在页面底部。我已经发布了 3 个问题,这些问题与我在提出问题之前发布的步骤相同,但是问题有所不同。谢谢

我已经用 cmake 成功编译了libharu库,所以我可以在我自己的 c++ 项目中使用它来生成 PDF 文件。它使用 Visual Studio 2013 编译为 Debug/Win32。cmake-gui 设置如下:

我正在使用libharu的当前项目(从头开始创建)具有以下结构(同样是 Visual Studio 2013):

libharu/include包含来自的文件C:\Users\wakatana\Downloads\__c++_pdf__generation\libharu-RELEASE_2_3_0\include

libharu/src包含来自的文件C:\Users\wakatana\Downloads\__c++_pdf__generation\libharu-RELEASE_2_3_0\src

libharu/lib包含来自的文件C:\Users\wakatana\Downloads\__c++_pdf__generation\libharu-build32\src\Debug

Visual Studio 项目设置如下:

在主文件中,我以这种方式包含libharu

最后到问题:

C:\Users\wakatana\Downloads\__c++_pdf__generation\libharu-build32\src\Debug目录中还有这些文件:

我也尝试设置Linker -> Input -> Additional Dependencieslibhpdfsd.liblibhpdfd.dll但唯一有效的是libhpdfd.lib. 上述其他文件的用途是什么?我如何知道应该使用哪个 *.lib *.dll?还有为什么我需要将此指定给 Visual Studio?难道它不够聪明,可以自动加载吗?它已经指定$(ProjectDir)libharu\lib了所有这些库的存储位置,为什么不自动选择最好的库呢?

0 投票
2 回答
350 浏览

c++ - GetTextExtentPoint32() 中的设备句柄

我想用GetTextExtentPoint32像素来计算字符串的大小。GetTextExtentPoint32具有以下语法:

hdc [in]设备上下文的句柄在哪里。

问题:

我正在使用以下代码在libharu中加载字体

如何将设备句柄传递/计算给GetTextExtentPoint32()

更新: 我在分辨率 (1920x1080) 的显示器上使用 Win-7。我的目标是使用Libharu库生成 PDF 报告。我想以像素为单位计算字符串的长度,为此,我想使用GetTextExtentPoint32()