嗨,我被困在将几个PDF表单合并在一个一个中。我已经尝试使用PDF格式执行此操作,但它无法打开只读的PDF表单。我已经用pdfsharp和他的不道德的参数进行了测试,它做了一些工作。它合并PDF但删除表单内容...(可悲的是,我已经失去了填补它的时间...)
这是我的代码的某些部分,也许它只是一个我没有想到的缺失参数......
private void MergePDFs(string outPutFilePath, params string[] filesPath)
{
List<PdfReader> readerList = new List<PdfReader>();
foreach (string filePath in filesPath)
{
PdfReader pdfReader = new PdfReader(filePath);
PdfReader.unethicalreading = true;
readerList.Add(pdfReader);
}
Document document = new Document(PageSize.A4, 0, 0, 0, 0);
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(outPutFilePath, FileMode.Create));
document.Open();
foreach (PdfReader reader in readerList)
{
for (int i = 1; i <= reader.NumberOfPages; i++)
{
PdfImportedPage page = writer.GetImportedPage(reader, i);
document.Add(iTextSharp.text.Image.GetInstance(page));
}
}
document.Close();
}
因此,如果有人对如何合并“修改保护”PDF表单有想法,我已准备好对其进行测试!
编辑:在对不受保护的PDF表单进行其他一些测试后,它似乎不是保护问题。我的合并DF不使用表单内容。
因此,任务仍然是“在C#上合并多个PDF表单”
编辑2:这里有两个我想合并的文件。一个是修改保护的,一个没有。两个都被填充了。https://drop.infini.fr/r/XFt_Sd8gFc#7thQxyjeGdo8uIkXN6oys82KLB8VE0AHmflb0uYRkVM=https://drop.infini.fr/r/NUa2n2No0R#FaOAGyzk0SrTDtB6CiXUhF7WEKw0EHGHHM7gaKz20o4=
感谢评论里的@mkl,我想出了解决办法。
private void Merge2PDFs(string outPutFilePath, params string[] filesPath)
{
byte[] mergedPdf = null;
using (FileStream fs = new FileStream(outPutFilePath, FileMode.OpenOrCreate))
{
using (MemoryStream ms = new MemoryStream())
{
using (Document PDFdocument = new Document())
{
using (PdfCopy copy = new PdfCopy(PDFdocument, ms))
{
PDFdocument.Open();
foreach (string filePath in filesPath)
{
PdfReader reader = new PdfReader(filePath);
PdfReader.unethicalreading = true;
// loop over the pages in that document
int n = reader.NumberOfPages;
for (int page = 0; page < n;)
{
copy.AddPage(copy.GetImportedPage(reader, ++page));
}
}
}
}
mergedPdf = ms.ToArray();
fs.Write(mergedPdf, 0, mergedPdf.Length);
fs.Close();
}
}
}
实际上,我的第一种方法只是复制基础文档,而不是表单内容。
这篇文章了解更多信息
在这里,我想合并两个单独的A4 PDF到A3 PDF。A4 PDF页面应适合并排查看的A3 2-ups。 我现在还没有尝试过任何代码,但在我想知道这是否可能之前? 注意:A4 PDF可以有“N”个页数,而不是单页PDF。 以下是图形图像示例:
主要内容:合并多个PDF文档,示例在前一章中,我们已经看到如何将给定的PDF文档分成多个文档。 现在让我们学习如何将多个PDF文档合并为一个文档。 合并多个PDF文档 使用类的类将多个PDF文档合并到单个PDF文档中,该类提供了将两个或多个PDF文档合并到单个PDF文档中的方法。 以下是合并多个PDF文档的步骤。 第1步:加载现有的PDF文档 使用类的静态方法加载现有的PDF文档。 此方法接受一个文件对象作为参数,因为这是一个静态
在上一章中,我们已经了解了如何合并多个PDF文档。 在本章中,我们将了解如何从PDF文档的页面中提取图像。 从PDF文档生成图像 PDFBox库为您提供了一个名为PDFRenderer的类, PDFRenderer PDF文档呈现为AWT BufferedImage。 以下是从PDF文档生成图像的步骤。 第1步:加载现有PDF文档 使用PDDocument类的静态方法load()加载现有PDF文档
在上一章中,我们已经了解了如何将给定的PDF文档拆分为多个文档。 现在让我们学习如何将多个PDF文档合并为一个文档。 合并多个PDF文档 您可以使用名为PDFMergerUtility类的类将多个PDF文档合并到一个PDF文档中,此类提供了将两个或多个PDF文档合并到单个PDF文档中的方法。 以下是合并多个PDF文档的步骤。 第1步:加载现有PDF文档 使用PDDocument类的静态方法load
(注意这不是按字母顺序,蓝莓排在狒狒之前) 当然,只要有一个列表不是空的,我就可以用一个计数器在“superlist”中循环,一个接一个地向resultslist中添加项目: 但最好使用一些优化的LINQ函数来实现这一点。我一直在研究Zip、GroupBy和Aggregate,但无法使它们工作。 那么:有没有一个漂亮的LINQ函数,或者多个函数的组合,可以把它变成漂亮的代码,或者我应该坚持(也许优
我想将至少2个PDF文件合并为一个,同时保留原始PDF中的所有表单元素。表单元素包括文本字段、单选按钮、复选框、下拉菜单等。请查看此示例PDF文件的表单: 你能做到吗? 编辑:至于实现,我更希望在linux平台上使用开源工具(如'ghostscript'或任何其他您认为适合解决此任务的工具)的命令行解决方案。 当然,欢迎每个人提供解决这个问题的任何工作解决方案,包括一个编码解决方案,它涉及编写一个