libharu 显示中文pdf
时间: 2024-01-26 13:14:04 浏览: 396
要在libharu中显示中文PDF,你需要使用libharu的字体子集功能,并将中文字体添加到PDF中。下面是一个示例代码,演示如何在libharu中显示中文PDF:
```cpp
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <libharu/hpdf.h>
int main()
{
HPDF_Doc pdf; HPDF_Page page;
HPDF_Font font;
const char* fontPath = "path/to/your/font.ttf"; // 替换为你的中文字体文件路径
pdf = HPDF_New(NULL, NULL);
if (!pdf) {
printf("Error: Cannot create PDF object.\n");
return 1;
}
if (HPDF_SetCompressionMode(pdf, HPDF_COMP_ALL) != HPDF_OK) {
printf("Error: Cannot set compression mode.\n");
HPDF_Free(pdf);
return 1;
}
if (HPDF_UseUTFEncodings(pdf) != HPDF_OK) {
printf("Error: Cannot use UTF encodings.\n");
HPDF_Free(pdf);
return 1;
}
font = HPDF_GetFont(pdf, fontPath, "UTF-8");
if (!font) {
printf("Error: Cannot load font.\n");
HPDF_Free(pdf);
return 1;
}
page = HPDF_AddPage(pdf);
HPDF_Page_SetSize(page, HPDF_PAGE_SIZE_A4, HPDF_PAGE_PORTRAIT);
HPDF_Page_BeginText(page);
HPDF_Page_SetFontAndSize(page, font, 12);
HPDF_Page_TextOut(page, 50, 700, "你好,世界!");
HPDF_Page_EndText(page);
if (HPDF_SaveToFile(pdf, "output.pdf") != HPDF_OK) {
printf("Error: Cannot save PDF file.\n");
HPDF_Free(pdf);
return 1;
}
HPDF_Free(pdf);
printf("PDF file created successfully.\n");
return 0;
}
```
请注意,你需要将`"path/to/your/font.ttf"`替换为你的中文字体文件的实际路径。此示例代码将在当前目录下创建一个名为`output.pdf`的PDF文件,其中包含一个显示中文的文本。
阅读全文