¿Hay alguna manera de editar un PDF desde Java?
Tengo un documento PDF que contiene marcadores de posición para el texto que necesito reemplazar con Java, pero todas las bibliotecas que vi crearon PDF desde cero y pequeñas funciones de edición.
¿De todos modos puedo editar un PDF o es imposible?Edición de texto en PDF con Java
20
A
Respuesta
11
Puede hacerlo con iText. Lo probé con el siguiente código. Agrega un trozo de texto y un círculo rojo sobre cada página de un PDF existente.
/* requires itextpdf-5.1.2.jar or similar */
import java.io.*;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.*;
public class AddContentToPDF {
public static void main(String[] args) throws IOException, DocumentException {
/* example inspired from "iText in action" (2006), chapter 2 */
PdfReader reader = new PdfReader("C:/temp/Bubi.pdf"); // input PDF
PdfStamper stamper = new PdfStamper(reader,
new FileOutputStream("C:/temp/Bubi_modified.pdf")); // output PDF
BaseFont bf = BaseFont.createFont(
BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); // set font
//loop on pages (1-based)
for (int i=1; i<=reader.getNumberOfPages(); i++){
// get object for writing over the existing content;
// you can also use getUnderContent for writing in the bottom layer
PdfContentByte over = stamper.getOverContent(i);
// write text
over.beginText();
over.setFontAndSize(bf, 10); // set font and size
over.setTextMatrix(107, 740); // set x,y position (0,0 is at the bottom left)
over.showText("I can write at page " + i); // set text
over.endText();
// draw a red circle
over.setRGBColorStroke(0xFF, 0x00, 0x00);
over.setLineWidth(5f);
over.ellipse(250, 450, 350, 550);
over.stroke();
}
stamper.close();
}
}
3
Tome un vistazo a iText y this sample code
+0
Desafortunadamente este ejemplo requiere campos en el PDF existente. Ver mi respuesta – bluish
-1
Puede hacer la edición limitada con itext pero PDF es un formato de archivo final por lo que no se puede hacer nada demasiado complejo. Escribí un artículo explicando algunas de las limitaciones: PDF format and style information.
2
Cuestiones relacionadas
- 1. Edición de PDF en PHP?
- 2. Crear PDF con Java
- 3. Edición de texto en línea en SVG
- 4. Edición in situ de texto en UITableViewCell?
- 5. Bloquear PDF contra edición usando iTextSharp
- 6. cómo agregar texto en un texto de edición en android?
- 7. Texto en hebreo en PDF
- 8. establece programáticamente la sugerencia de texto de edición en android?
- 9. Número de páginas de Pdf con Java
- 10. Cómo borrar el texto en el texto de edición
- 11. PDF Análisis con texto y coordenadas
- 12. volcando el documento PDF (* .pdf) al texto?
- 13. extraer texto del pdf en Javascript
- 14. Biblioteca de PDF para Java
- 15. Biblioteca de Java Pdf Diff
- 16. Respecto al texto de edición, borde completo
- 17. IOS PDF de edición - Combinando FastPDFKit/CGPDFContext y libHaru
- 18. Extraer texto del PDF
- 19. Analizar texto (lematización, distancia de edición)
- 20. Obtener texto de un control de edición
- 21. PDF Búsqueda de texto C#
- 22. Android Word-Wrap Texto de texto de edición
- 23. KeyCode_Ingrese al texto de edición siguiente
- 24. Edición de texto enriquecido - designMode vs contentEditable
- 25. Extraer texto de archivos PDF en C#
- 26. Extracción simple de texto PDF en Android?
- 27. Selección de texto PDF en iOS
- 28. Cómo reemplazar texto en un PDF con C#?
- 29. Edición línea específica en el archivo de texto en Python
- 30. tinyMCE - edición de código fuente en un área de texto
Este ejemplo se superpone a la página con su nuevo texto y la elipse. ¿Hay alguna manera de modificar el texto en su lugar? ¿Hay alguna manera de buscar, digamos un token, y * reemplazar * con mi texto en lugar de superponerlo? – Vihung
Buen punto, ¡me gustaría saberlo también! – bluish
error ....... Señal fatal 7 (SIGBUS), código 2, código de error 0xa290903f en tid 25590 (om.pdfgenerator) –