使用iText批量合并PDF并添加页码时出现文本错位反转问题的技术求助
iText批量合并PDF并添加页码时出现文本错位反转问题的技术求助
各位同行们好,我最近在做PDF批量处理的需求时碰到了个头疼的问题,想请教下大家的经验:
我的需求很明确:把目录里300-400个PDF文件按文件名排序后合并成一个,再给合并后的文件加上连续的页码(页码要对应合并后的总页数)。
目前合并的部分已经跑通了,代码逻辑是先读取目录文件、排序文件名,然后逐个用iText的PdfMerger合并,代码如下:
foreach (var file in projectFiles) { PdfDocument projectPdf = new PdfDocument(new PdfReader(file)); merger.Merge(projectPdf, 1, projectPdf.GetNumberOfPages()); currentPage += projectPdf.GetNumberOfPages(); projectPdf.Close(); }
合并好的PDF用阅读器打开显示完全正常,但当我调用自己写的AddPageNumbers函数添加页码后,怪事就发生了——页码文本出现了错位甚至反转的情况!这个添加页码的函数我只写了一部分,核心代码如下:
public static void AddPageNumbers(PdfDocument pdfDoc, int totalPages) { Document doc = new Document(pdfDoc); int currentPage = 1; for (int i = 1; i <= pdfDoc.GetNumberOfPages(); i++) { var currentPagePara = new Paragraph((currentPage).ToString()) .SetFontSize(10); // 这里原本还有设置段落位置(比如页面底部居中)的代码,暂时省略了 doc.Add(currentPagePara); currentPage++; } doc.Close(); }
我反复检查了合并后的源文件,确实没有显示问题,但一加页码就出状况,有没有大佬遇到过类似的坑?或者能帮我分析下可能的原因,给点修复的思路吗?
备注:内容来源于stack exchange,提问作者Kal800
相关产品推荐
相关产品推荐

