Ejemplos de PDF
Conceptos básicos
Sección titulada «Conceptos básicos»Ejemplo de código sugerido
Sección titulada «Ejemplo de código sugerido»Primero, debes crear el objeto de servicio web:
OKMWebservices ws = OKMWebservicesFactory.getInstance(host);A continuación debes iniciar sesión usando el método “login”. Puedes acceder al método “login” desde el objeto de servicio web “ws” como se muestra a continuación:
ws.login(user, password);Llegados a este punto puedes usar todos los métodos de PDF desde la clase “pdf” como se muestra a continuación:
InputStream is = ws.pdf.getImage("e7d6860a-7e0b-4823-bd3d-75f88be1eedf", 1, null);Métodos
Sección titulada «Métodos»getImage
Sección titulada «getImage»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| getImage(String uuid, int page, String size) | InputStream | Devuelve la imagen de la página especificada. |
- El valor de uuid es el UUID del documento.
- El page es el número de página del documento, empezando desde 1.
- El parámetro size es opcional. Cuando se indica, redimensiona la imagen de la página; en caso contrario, se usa el valor por defecto.
Ejemplo:
package com.openkm;
import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) { String host = "http://localhost:8080/openkm"; String user = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try { ws.login(user, password);
InputStream is = ws.pdf.getImage("e7d6860a-7e0b-4823-bd3d-75f88be1eedf", 1, null); OutputStream fos = new FileOutputStream("/home/openkm/page-1.png"); IOUtils.copy(is, fos); IOUtils.closeQuietly(is); IOUtils.closeQuietly(fos); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| split(String uuid, String dstId, String baseName, List |
List |
Devuelve una lista de documentos resultantes de la operación de división. |
- El valor de uuid es el UUID del documento.
- El valor de dstId es el UUID de la carpeta de destino. Si no se indica, se usa la carpeta padre del documento origen.
- El valor de baseName es el nombre base usado para crear los documentos divididos. Por ejemplo, si baseName es “test” y pages es [1, 3], los ficheros creados serán “test-001.pdf” y “test-003.pdf”.
- El valor de pages es la lista de números de página a dividir.
Ejemplo:
package com.openkm;
import java.util.ArrayList;import java.util.List;import com.openkm.sdk4j.bean.*;
import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) { String host = "http://localhost:8080/openkm"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try { ws.login(username, password); List<Integer> pages = new ArrayList<>(); pages.add(2); pages.add(3); List<Document> documents = ws.pdf.split("e7d6860a-7e0b-4823-bd3d-75f88be1eedf", "0be057f1-efac-4e09-9c10-e7f27c731442", "split", pages); System.out.println(documents); } catch (Exception e) { e.printStackTrace(); } }}extract
Sección titulada «extract»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| extract(String uuid, String dstId, String name, List |
Document | Devuelve el nuevo documento creado con las páginas extraídas. |
- El valor de uuid es el UUID del documento origen.
- El valor de dstId es el UUID de la carpeta de destino. Si no se indica, se usa la carpeta padre del documento origen.
- El valor de name es el nombre del nuevo documento que contiene las páginas extraídas.
- El valor de pages es la lista de números de página a extraer.
Ejemplo:
package com.openkm;
import java.util.ArrayList;import java.util.List;import com.openkm.sdk4j.bean.*;
import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.impl.OKMWebservices;
public class PdfExample {
public static void main(String[] args) { String host = "http://localhost:8080/openkm"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try { ws.login(username, password); List<Integer> pages = new ArrayList<>(); pages.add(2); pages.add(3); Document document = ws.pdf.extract("e7d6860a-7e0b-4823-bd3d-75f88be1eedf", "0be057f1-efac-4e09-9c10-e7f27c731442", "extract.pdf", pages); System.out.println(document); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| remove(String uuid, String dstId, String name, List |
Document | Devuelve un nuevo documento con las páginas indicadas eliminadas. |
- El valor de uuid es el UUID del documento origen.
- El valor de dstId es el UUID de la carpeta de destino. Si no se indica, se usa la carpeta padre del documento origen.
- El valor de name es el nombre del nuevo documento.
- El valor de pages es la lista de números de página a eliminar.
Ejemplo:
package com.openkm;
import java.util.ArrayList;import java.util.List;import com.openkm.sdk4j.bean.*;
import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.impl.OKMWebservices;
public class PdfExample {
public static void main(String[] args) { String host = "http://localhost:8080/openkm"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try { ws.login(username, password); List<Integer> pages = new ArrayList<>(); pages.add(2); pages.add(3); Document document = ws.pdf.remove("e7d6860a-7e0b-4823-bd3d-75f88be1eedf", "0be057f1-efac-4e09-9c10-e7f27c731442", "remove.pdf", pages); System.out.println(document); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| rotate(String uuid, String dstId, String name, Integer angle, List |
Document | Devuelve un nuevo documento con las páginas indicadas rotadas. |
- El valor de uuid es el UUID del documento origen.
- El valor de dstId es el UUID de la carpeta de destino. Si no se indica, se usa la carpeta padre del documento origen.
- El valor de name es el nombre del nuevo documento.
- El valor de angle es el ángulo de rotación aplicado a las páginas indicadas.
- El valor de pages es la lista de números de página a rotar.
Ejemplo:
package com.openkm;
import java.util.ArrayList;import java.util.List;import com.openkm.sdk4j.bean.*;
import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.impl.OKMWebservices;
public class PdfExample {
public static void main(String[] args) { String host = "http://localhost:8080/openkm"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try { ws.login(username, password); List<Integer> pages = new ArrayList<>(); pages.add(2); pages.add(3); Document document = ws.pdf.rotate("e7d6860a-7e0b-4823-bd3d-75f88be1eedf", "0be057f1-efac-4e09-9c10-e7f27c731442", "rotate.pdf", 180, pages); System.out.println(document); } catch (Exception e) { e.printStackTrace(); } }}insertPages
Sección titulada «insertPages»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| insertPages(String uuid, InsertPagesRequest request) | Document | Devuelve el nuevo documento creado con las páginas insertadas. |
- El valor de uuid es el UUID del documento destino donde se insertarán las páginas.
- El objeto InsertPagesRequest contiene los siguientes campos:
- Cada objeto PageInsertOperation contiene los siguientes campos:
Ejemplo:
package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.impl.OKMWebservices;import com.openkm.sdk4j.bean.Document;import com.openkm.sdk4j.bean.InsertPagesRequest;import com.openkm.sdk4j.bean.PageInsertOperation;
import java.util.Arrays;
public class PdfExample {
public static void main(String[] args) { String host = "http://localhost:8080/openkm"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try { ws.login(username, password);
// Crear la petición de inserción de páginas InsertPagesRequest request = new InsertPagesRequest(); request.setName("merged_document.pdf"); request.setDstId("e7d6860a-7e0b-4823-bd3d-75f88be1eedf");
// Crear una operación de inserción de páginas PageInsertOperation operation = new PageInsertOperation(); operation.setSrcId("a573da75-ba1e-4f5b-98d2-fbb7da5f1cf1"); // UUID del documento origen operation.setPages(Arrays.asList(1, 2, 3)); // Páginas a tomar del origen operation.setInsertFromPage(1); // Insertar en la posición 1 del destino
request.getInsertOperations().add(operation);
// Insertar páginas en el documento destino Document result = ws.pdf.insertPages("6a54d98b-6454-4484-8172-8359a2b4f2f2", request); System.out.println("New document created: " + result.getUuid()); } catch (Exception e) { e.printStackTrace(); } }}optimize
Sección titulada «optimize»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| optimize(String uuid) | boolean | Devuelve true cuando el documento se ha optimizado correctamente. |
Ejemplo:
package com.openkm;
import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.impl.OKMWebservices;
public class Test {
public static void main(String[] args) { String host = "http://localhost:8080/openkm"; String user = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.getInstance(host);
try { ws.login(user, password); boolean success = ws.pdf.optimize("cd4f69ed-e517-408b-b7eb-95cfe371ecba"); System.out.println("optimize success: " + success); } catch (Exception e) { e.printStackTrace(); } }}