PoDoFo 润色字符和 PdfContentsTokenizer 错误
PoDoFo polish characters & PdfContentsTokenizer error
1.
如何从 pdf 文件中获取波兰语字符?我能以某种方式告诉
PdfVariant::getString()
它会处理抛光字符吗?
因为我得到的是 0
而不是 ł
,有趣的是,只有当 ł
作为第一个 "nonbase" 字符出现时才会这样。因此,如果 pdf 文件以 aaaałęąaaaa
开头,ł
编码为 0
,ę
为 1
,ą
为 [=22] =] 但 如果pdf文件以aaaaąęłaaaa
开头,ł
编码为2
,ę
编码为1
和 ą
喜欢 0
我怎样才能在任何系统中获得这些字符?
2.
当我尝试从 pdf 文件中提取文本时,我会这样做:
string input_name = "example.pdf";
PdfMemDocument pdf(input_name.c_str());
for (int pn = 0; pn < pdf.GetPageCount(); ++pn) {
PdfPage* page = pdf.GetPage(pn);
PdfContentsTokenizer tok(page);
const char* token = nullptr;
PdfVariant var;
EPdfContentsType type;
while (tok.ReadNext(type, token, var)) {
//etc.
但我遇到了问题 PdfContentsTokenizer tok(page);
它不能正常工作。对于某些 pdf 文件,它运行顺利,而对于其他文件,它会在 inffas32.asm
文件 669
行:
中抛出 Access violation reading location
错误
L_get_length_code_mmx:
pand mm4,mm0
movd eax,mm4
movq mm4,mm3
mov eax, [ebx+eax*4]//this is the error line
顺便说一句,我注意到并不是每个 pdf 文件都以相同的方式编码。例如,使用 podofobrowser 我无法从官方的 podofo helloworld 示例中看到 Hello World!
文本。对于其他 pdf 文件,podofobrowser 以不同的方式显示文本或根本不显示。
广告 1. The link to patch files
允许使用 TextExtractor.
从 pdf 中提取润色文本
这是从 pdf 中提取非 unicode 文本时最重要的一行:
PdfString unicode = pCurFont->GetEncoding()->ConvertToUnicode( rString, pCurFont );
广告 2. 问题是构建错误的 zlib 库。我rebuit它,重建podofo,问题消失了。
1.
如何从 pdf 文件中获取波兰语字符?我能以某种方式告诉
PdfVariant::getString()
它会处理抛光字符吗?
因为我得到的是 0
而不是 ł
,有趣的是,只有当 ł
作为第一个 "nonbase" 字符出现时才会这样。因此,如果 pdf 文件以 aaaałęąaaaa
开头,ł
编码为 0
,ę
为 1
,ą
为 [=22] =] 但 如果pdf文件以aaaaąęłaaaa
开头,ł
编码为2
,ę
编码为1
和 ą
喜欢 0
我怎样才能在任何系统中获得这些字符?
2.
当我尝试从 pdf 文件中提取文本时,我会这样做:
string input_name = "example.pdf";
PdfMemDocument pdf(input_name.c_str());
for (int pn = 0; pn < pdf.GetPageCount(); ++pn) {
PdfPage* page = pdf.GetPage(pn);
PdfContentsTokenizer tok(page);
const char* token = nullptr;
PdfVariant var;
EPdfContentsType type;
while (tok.ReadNext(type, token, var)) {
//etc.
但我遇到了问题 PdfContentsTokenizer tok(page);
它不能正常工作。对于某些 pdf 文件,它运行顺利,而对于其他文件,它会在 inffas32.asm
文件 669
行:
Access violation reading location
错误
L_get_length_code_mmx:
pand mm4,mm0
movd eax,mm4
movq mm4,mm3
mov eax, [ebx+eax*4]//this is the error line
顺便说一句,我注意到并不是每个 pdf 文件都以相同的方式编码。例如,使用 podofobrowser 我无法从官方的 podofo helloworld 示例中看到 Hello World!
文本。对于其他 pdf 文件,podofobrowser 以不同的方式显示文本或根本不显示。
广告 1. The link to patch files 允许使用 TextExtractor.
从 pdf 中提取润色文本这是从 pdf 中提取非 unicode 文本时最重要的一行:
PdfString unicode = pCurFont->GetEncoding()->ConvertToUnicode( rString, pCurFont );
广告 2. 问题是构建错误的 zlib 库。我rebuit它,重建podofo,问题消失了。