PDFlib示例搜索和替换文本复制页面并粘贴矩形和文本。
我不想从我的硬盘中加载字体(就像在使用int font = p.load_font(REPLACEMENT_FONT, "unicode", "");的示例中所做的那样),而是使用源文档中的原始字体。
我怎样才能做到这一点?
我尝试的是:
当使用int font = 0 (相当于第244行tet.fontid的值)时,PDFlib抛出一个异常,如下所示:
com.pdflib.PDFlibException: Option 'font' has bad font handle 0
at com.pdflib.pdflib.PDF_fit_textline(Native Method)
at com.pdflib.pdflib.fit_textline(pdflib.java:1086)什么可以工作,(还有我也无法运行的)
也许我可以读一下目标文档中的字体。在源文档中读取字体是可行的,可以使用以下内容:(int) lib.pcos_get_number(pdiHandle, "length:fonts");。尝试用(int) lib.pcos_get_number(outputPdfHandle, "length:fonts");读取目标文档中的字体(使用示例行560中的outputPdfHandle = p.begin_document(outfilename, "") )会引发异常
com.pdflib.PDFlibException: Handle parameter or option of type 'PDI document' has bad value 1
at com.pdflib.pdflib.PDF_pcos_get_number(Native Method)
at com.pdflib.pdflib.pcos_get_number(pdflib.java:1539)发布于 2021-08-12 08:05:28
不可能使用通过PDI导入的文档中的字体在输出文档中创建文本。从理论上讲,通过pCOS函数访问输入文档中的字体数据听起来很有吸引力。人们可能认为,应该可以将字体数据重新组合成一个有效的TrueType字体,然后可以通过PDFlib load_font()函数加载该字体。
但这是不可能的,原因如下:
此外,TET提供的fontid值在通过PDFlib创建新输出时不能用作字体句柄。fontid值是pCOS伪对象数组fonts[]中的索引,它与通过PDFlib API创建新输出的任何句柄完全无关。
https://stackoverflow.com/questions/68724304
复制相似问题