Как объединить несколько PDF файлов в один PDF файл без стороннего компонента?
Объединение PDF файлов С#
Ответ 1
Я не думаю, что ты можешь. Компонент Opensource PDFSharp имеет эту функциональность и хороший пример исходного кода при объединении файлов
Ответ 2
.NET Framework не содержит возможности изменения/создания PDF файлов. Вам нужен сторонний компонент, чтобы выполнить то, что вы ищете.
Ответ 3
Как говорили другие, для выполнения этой задачи ничего не создано. Используйте iTextSharp с помощью пример кода.
Ответ 4
AFAIK С# не имеет встроенной поддержки для обработки PDF, поэтому то, что вы просите, не может быть выполнено без использования стороннего компонента или библиотеки COTS.
В отношении библиотек существует множество возможностей. Чтобы указать несколько:
http://csharp-source.net/open-source/pdf-libraries
http://www.codeproject.com/KB/graphics/giospdfnetlibrary.aspx
Ответ 5
Я не думаю, что .NET Framework содержит такие библиотеки. Я использовал iTextsharp с С# для объединения файлов PDF. Я думаю, что iTextsharp - самый простой способ сделать это. Вот код, который я использовал.
string[] lstFiles=new string[3];
lstFiles[0][email protected]"C:/pdf/1.pdf";
lstFiles[1][email protected]"C:/pdf/2.pdf";
lstFiles[2][email protected]"C:/pdf/3.pdf";
PdfReader reader = null;
Document sourceDocument = null;
PdfCopy pdfCopyProvider = null;
PdfImportedPage importedPage;
string [email protected]"C:/pdf/new.pdf";
sourceDocument = new Document();
pdfCopyProvider = new PdfCopy(sourceDocument, new System.IO.FileStream(outputPdfPath, System.IO.FileMode.Create));
//Open the output file
sourceDocument.Open();
try
{
//Loop through the files list
for (int f = 0; f < lstFiles.Length-1; f++)
{
int pages =get_pageCcount(lstFiles[f]);
reader = new PdfReader(lstFiles[f]);
//Add pages of current file
for (int i = 1; i <= pages; i++)
{
importedPage = pdfCopyProvider.GetImportedPage(reader, i);
pdfCopyProvider.AddPage(importedPage);
}
reader.Close();
}
//At the end save the output file
sourceDocument.Close();
}
catch (Exception ex)
{
throw ex;
}
private int get_pageCcount(string file)
{
using (StreamReader sr = new StreamReader(File.OpenRead(file)))
{
Regex regex = new Regex(@"/Type\s*/Page[^s]");
MatchCollection matches = regex.Matches(sr.ReadToEnd());
return matches.Count;
}
}
Ответ 6
Хотя уже сказано, вы не можете манипулировать PDF файлами со встроенными библиотеками .NET Framework. Однако я могу рекомендовать iTextSharp, который является .NET-портом Java iText. Я играл с ним и нашел, что это очень простой инструмент для использования.
Ответ 7
ITextSharp - это путь