/// <summary> /// Devuelve un PDF que se guardará en la ruta indicada, a partir de la plantilla necesaria para el tipo de informe indicado. /// </summary> /// <param name="ruta">Ruta completa (nombre de archivo incluido) en la que se guardará el PDF.</param> /// <param name="tipo">Tipo de informe que se va a generar.</param> /// <returns>El PDF listo para editar sus elementos.</returns> public iText.Kernel.Pdf.PdfDocument GetPdfDesdePlantilla(string ruta, TiposInforme tipo = TiposInforme.Ninguno) { // Definimos el pdf que se va a devolver. iText.Kernel.Pdf.PdfDocument docPdf = null; // Si hay un tipo de informe creamos el pdf. if (tipo != TiposInforme.Ninguno) { // Definimos la plantilla string plantilla = Utils.CombinarCarpetas(App.RutaInicial, $"/Plantillas/{tipo}.pdf"); // Se crea el Reader con la plantilla necesaria. iText.Kernel.Pdf.PdfReader reader = new iText.Kernel.Pdf.PdfReader(plantilla); // Se crea el Writer con la ruta pasada. iText.Kernel.Pdf.PdfWriter writer = new iText.Kernel.Pdf.PdfWriter(ruta); // Creamos el documento, usando el reader y el writer anteriores. docPdf = new iText.Kernel.Pdf.PdfDocument(reader, writer); // Añadimos los datos de Metadata docPdf.GetDocumentInfo().SetAuthor("Orion - AnderSoft - A.Herrero"); docPdf.GetDocumentInfo().SetCreator("Orion 1.0"); } // Devolvemos el documento. return(docPdf); }
/// <summary> /// Devuelve un documento PDF nuevo en formato A5 en la ruta que se pasa como argumento. /// </summary> /// <param name="ruta">Ruta completa (nombre de archivo incluido) en la que se guardará el documento PDF.</param> /// <param name="apaisado">Si es true, el documento estará en apaisado. Por defecto es false.</param> /// <returns>El documento PDF listo para trabajar en él.</returns> public iText.Layout.Document GetNuevoPdfA5(string ruta, bool apaisado = false) { // Se crea el Writer con la ruta pasada. iText.Kernel.Pdf.PdfWriter writer = new iText.Kernel.Pdf.PdfWriter(ruta); // Se crea el PDF que se guardará usando el writer. iText.Kernel.Pdf.PdfDocument docPDF = new iText.Kernel.Pdf.PdfDocument(writer); // Añadimos los datos de Metadata docPDF.GetDocumentInfo().SetAuthor("Orion - AnderSoft - A.Herrero"); docPDF.GetDocumentInfo().SetCreator("Orion 1.0"); // Creamos el tamaño de página y le asignamos la rotaciñon si debe ser apaisado. iText.Kernel.Geom.PageSize tamañoPagina; if (apaisado) { tamañoPagina = iText.Kernel.Geom.PageSize.A5.Rotate(); } else { tamañoPagina = iText.Kernel.Geom.PageSize.A5; } // Se crea el documento con el que se trabajará. iText.Layout.Document documento = new iText.Layout.Document(docPDF, tamañoPagina); return(documento); }
/// <summary> /// Sets the title. /// </summary> /// <param name="pdfFilePath">The PDF file path.</param> /// <param name="title">The title.</param> internal static void SetTitle(string pdfFilePath, string title) { if (string.IsNullOrEmpty(title)) { return; } string tempFilePath = Path.GetTempFileName(); using (PdfReader pdfReader = new PdfReader(pdfFilePath)) { using (PdfWriter pdfWriter = new PdfWriter(tempFilePath)) { using (iText.Kernel.Pdf.PdfDocument pdfDocument = new iText.Kernel.Pdf.PdfDocument(pdfReader, pdfWriter)) { PdfDocumentInfo pdfDocumentInfo = pdfDocument.GetDocumentInfo(); pdfDocumentInfo.SetTitle(title); } } } File.Delete(pdfFilePath); File.Move(tempFilePath, pdfFilePath); }