在使用ITextsharp合并PDF时,或者更具体地说,合并后合并PDF文本层时,我遇到了问题。 这是我正在使用的代码:
string path = @"C:\temp\Combined.pdf";
List<string> list = new List<String>();
list.Add(@"C:\temp\1.pdf");
list.Add(@"C:\temp\2.pdf");
list.Add(@"C:\temp\3.pdf");
using (FileStream fileStream = new FileStream(path, FileMode.Create))
{
// ITextSharp
PdfReader pdfReader = null;
Document document = new Document();
PdfSmartCopy pdfCopy = new PdfSmartCopy(document, fileStream);
pdfCopy.SetPdfVersion(PdfWriter.PDF_VERSION_1_7);
pdfCopy.SetTagged();
document.Open();
foreach (string pdfDoc in list)
{
pdfReader = new PdfReader(pdfDoc);
pdfCopy.AddDocument(pdfReader);
}
pdfCopy.Close();
document.Close();
pdfReader.Close();
}
因此,合并之前的两个PDF文档具有完全正常的文本层,这意味着我可以将文本复制并粘贴到记事本中,并且看到一切正常。
合并文档后,文本图层中似乎添加了额外的空格: 文本图层示例: -
合并前:快速的棕色狐狸跳过懒狗。
合并之后:我可以通过懒惰的跳跃来跳跃
每个字母之间没有恒定的空格,它比那更随机。关于什么可能是错误的指针,或者我在PDF合并中没有做的事情以保留文本层?
样品:
提前感谢您的任何帮助。