PDFUtils
Métodos de utilidad para convertir archivos PDF. Por ejemplo, para estampar una imagen o un texto.
Métodos
Sección titulada «Métodos»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| merge(List |
void | Combina varios PDF en uno nuevo. |
- inputs: lista de flujos de entrada para combinar.
- output: flujo de salida del archivo.
Ejemplo:
package com.openkm;
import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.util.ArrayList;import java.util.List;
import org.apache.commons.io.IOUtils;
import com.openkm.api.OKMDocument;import com.openkm.util.ContextWrapper;import com.openkm.util.FileUtils;import com.openkm.util.PDFUtils;import com.openkm.util.PathUtils;
public class Test {
public static void main(String[] args) { FileOutputStream fos = null; FileInputStream fis = null; File tmp = null;
try { OKMDocument okmDocument = ContextWrapper.getContext().getBean(OKMDocument.class); PDFUtils pdfUtils = ContextWrapper.getContext().getBean(PDFUtils.class);
tmp = FileUtils.createTempFile("pdf"); fos = new FileOutputStream(tmp);
List<InputStream> inputs = new ArrayList<>(); inputs.add(okmDocument.getContent(null, "c0984ecf-8d9e-40f8-b5fb-2c83d202bd9d", false)); inputs.add(okmDocument.getContent(null, "b3d0af95-076c-4cc4-9b85-bd3e7eb2baa3", false));
// Merge document pdfUtils.merge(inputs, fos);
// Create document in repository String fldPath = PathUtils.getParent("/okm:root/test3.pdf"); // all documents are in same path String docPath = fldPath + "/docMerge.pdf"; fis = new FileInputStream(tmp); okmDocument.createSimple(null, docPath, fis); } catch (Exception e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(fis); IOUtils.closeQuietly(fos); fileUtils.deleteQuietly(tmp); } }}getNumberOfPages
Sección titulada «getNumberOfPages»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getNumberOfPages(String token, String docId) | int | Devuelve el número de páginas de un PDF. |
- input: el flujo de entrada del archivo.
- text: el texto del sello.
- docId: identificador único del PDF en OpenKM.
Ejemplo:
package com.openkm;
import com.openkm.util.ContextWrapper;import com.openkm.util.PDFUtils;
public class Test {
public static void main(String[] args) { try { PDFUtils pdfUtils = ContextWrapper.getContext().getBean(PDFUtils.class); String docId = "e6b61e8d-4bf1-4c37-828f-09ecc34261cc"; System.out.println(pdfUtils.getNumberOfPages(null, docId)); } catch (Exception e) { e.printStackTrace(); } }}fillForm
Sección titulada «fillForm»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| fillForm(InputStream input, Map<String, Object> values, OutputStream output) | void | Rellena el formulario PDF con valores. |
- input: El flujo de entrada del archivo PDF con el formulario.
- values: Un mapa de valores que se utilizarán para rellenar el formulario.
- output: El PDF generado con el formulario rellenado.
Ejemplo utilizando este archivo FillForm.pdf:
package com.openkm;
import com.openkm.util.ContextWrapper;import com.openkm.util.PDFUtils;
public class Test {
public static void main(String[] args) { try { PDFUtils pdfUtils = ContextWrapper.getContext().getBean(PDFUtils.class); InputStream fis = new FileInputStream("/home/openkm/FillForm.pdf"); OutputStream fos = new FileOutputStream("/home/openkm/FillFormOutput.pdf"); Map<String, Object> values = new HashMap<>(); values.put("TextField_1", "Field #1 value"); values.put("TextField_2", "Field #2 value"); values.put("TextField_3", "Field #3 value"); pdfUtils.fillForm(fis, values, fos); } catch (Exception e) { e.printStackTrace(); } }}