c# - example - itextsharp pdf
Combina archivos PDF c# (7)
¿Cómo puedo combinar varios PDF en un PDF sin un componente de terceros?
.NET Framework no contiene la capacidad de modificar / crear archivos PDF. Necesita un componente de terceros para lograr lo que está buscando.
ITextSharp es el camino a seguir
Como han dicho otros, no hay nada incorporado para hacer esa tarea. Use iTextSharp con este código de ejemplo .
AFAIK C # no tiene soporte incorporado para manejar PDF, por lo que lo que está pidiendo no se puede hacer sin usar un componente de terceros o una biblioteca COTS.
En cuanto a las bibliotecas, hay una gran cantidad de posibilidades. Solo para señalar algunos:
http://csharp-source.net/open-source/pdf-libraries
http://www.codeproject.com/KB/graphics/giospdfnetlibrary.aspx
No creo que puedas. Componente de fuente abierta PDFSharp tiene esa funcionalidad, y una buena muestra de código fuente en la combinación de archivos
Aunque ya se ha dicho, no puede manipular archivos PDF con las bibliotecas integradas de .NET Framework. Sin embargo, puedo recomendar iTextSharp , que es un puerto .NET de Java iText. He jugado con eso, y me pareció una herramienta muy fácil de usar.
No creo que .NET Framework contenga tales bibliotecas similares. Usé iTextsharp con c # para combinar archivos pdf. Creo que iTextsharp es la manera más fácil de hacer esto. Aquí está el código que utilicé.
string[] lstFiles=new string[3];
lstFiles[0]=@"C:/pdf/1.pdf";
lstFiles[1]=@"C:/pdf/2.pdf";
lstFiles[2]=@"C:/pdf/3.pdf";
PdfReader reader = null;
Document sourceDocument = null;
PdfCopy pdfCopyProvider = null;
PdfImportedPage importedPage;
string outputPdfPath=@"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;
}
}