.net - quitar - modificar propiedades pdf
Modificar las propiedades del documento PDF (4)
¿Cómo puedo modificar las propiedades del documento PDF programáticamente usando el código .NET?
Compré varios libros electrónicos en formato PDF y, lamentablemente, los editores no han establecido las propiedades Título, Autor y Asunto. Puede ver esto en un documento accediendo al cuadro de diálogo Propiedades del archivo y seleccionando la pestaña PDF. Esto es un verdadero dolor al intentar usar el eBook PDF en un dispositivo eReader.
No quiero tener que comprar un producto PDF Writer completo para hacer esto, así que espero que alguien me indique una biblioteca gratuita simple que pueda usar para modificar las propiedades mediante programación.
Si no hay una biblioteca .NET disponible, agradecería cualquier otra técnica.
¿Has mirado iTextSharp? Es una API PDF para .Net. Puede hacer algunas cosas bastante útiles con el uso de PDF.
Aquí hay una lista de bibliotecas PDF de código abierto en C #
Un par de otras bibliotecas, que no están en esa lista:
ByteScout-PDF
iTextSharp
Gracias a ambos, Mindaugas y Knobloch. Como ambos apuntaron a iTextSharp, fui por esto y pude resolver mi problema usando iTextSharp y un código similar al que se muestra a continuación. Una cosa que noté fue que el archivo resultante era 115,143 bytes más pequeño, desde un archivo inicial de 3,639,172, por lo que parece que estoy perdiendo alguna información o esta biblioteca es más eficiente que el producto original utilizado para crear el documento.
El otro aspecto interesante es que, al leer sobre esta biblioteca, seguí viendo enlaces a iText en acción, que publica el mismo editor de los libros electrónicos con los que estoy teniendo problemas :-)
using System.Diagnostics;
using iTextSharp.text.pdf;
using System.IO;
using System.Collections;
PdfReader pdfReader = new PdfReader(filePath);
using (FileStream fileStream = new FileStream(newFilePath, FileMode.Create, FileAccess.Write))
{
string title = pdfReader.Info["Title"] as string;
Trace.WriteLine("Existing title: " + title);
PdfStamper pdfStamper = new PdfStamper(pdfReader, fileStream);
// The info property returns a copy of the internal HashTable
Hashtable newInfo = pdfReader.Info;
newInfo["Title"] = "New title";
pdfStamper.MoreInfo = newInfo;
pdfReader.Close();
pdfStamper.Close();
}
La biblioteca Docotic.Pdf se puede usar para una tarea como esta.
Aquí hay una muestra que muestra cómo establecer las propiedades del documento PDF . Es para un nuevo documento PDF, pero para cambiar las propiedades en un documento existente, solo debe usar otro constructor.
Descargo de responsabilidad: yo trabajo para Bit Miracle.