1. Produkter
  2.   Ordbehandling
  3.   Java
  4.   documents4j
 
  

Gratis Java‑API för att konvertera högkvalitativt Word‑dokument till PDF

Ett ledande öppet källkods‑bibliotek gör det möjligt för Java‑utvecklare att konvertera MS Office DOCX, XLSX och PDF‑filer med hög precision med hjälp av inbyggda applikationer.

Vad är Documents4j ?

documents4j är ett kraftfullt öppet källkod Java‑bibliotek designat för att konvertera dokument mellan olika format, såsom DOCX till PDF eller XLSX till PDF. Till skillnad från många traditionella bibliotek delegerar documents4j konverteringsprocessen till inbyggda applikationer som Microsoft Word och Excel, vilket säkerställer högkvalitativt resultat med minimala formateringsproblem. Biblioteket tar en annan ansats. Istället för att återimplementera konverteringslogiken fungerar det som en brygga och överlåter det tunga arbetet till inbyggda applikationer (som Microsoft Word eller Excel) som redan förstår dessa format perfekt. Detta säkerställer att utdata‑dokumentet — exempelvis en PDF som genererats från en Word‑fil — ser exakt ut som om du manuellt hade klickat "Spara som" i MS Office.

Det primära värdet av documents4j ligger i dess precision. För företag som kräver dokumentation av professionell nivå där varje marginal och teckensnitt måste förbli intakta, kan förlitan på öppna källkod‑parsers vara riskabelt. documents4j är särskilt användbart för att generera fakturor eller rapporter från mallar, automatisera dokumentarbetsflöden i en Windows‑baserad miljö och avkoppla konverteringslogiken från din huvudapplikation via en fjärrserversuppsättning. Genom att utnyttja inbyggda applikationer säkerställer det oöverträffad precision jämfört med traditionella bibliotek. Stödet för lokal och fjärrbearbetning, samtidig körning och lastbalansering gör det mycket lämpligt för företagsnivå‑system.

Previous Next

Komma igång med documents4j

Först och främst behöver du ha Java Development Kit (JDK) installerat på ditt system. Att referera till documents4j i ditt Maven‑baserade Java‑projekt är ännu enklare. Allt du behöver är att lägga till följande beroende i din pom.xml och låta din IDE hämta och referera till documents4j‑Jar‑filerna.

Maven‑repo för documents4j


// Here’s a commonly used dependency (Local converter): 

<dependency>
<groupId>com.documents4j</groupId>
<artifactId>documents4j-local</artifactId>
<version>1.1.13</version>
</dependency>

//If you only need the API:
<dependency>
<groupId>com.documents4j</groupId>
<artifactId>documents4j-api</artifactId>
<version>1.1.13</version>
</dependency>

Installera documents4j från GitHub


git clone https://github.com/documents4j/documents4j.git
cd documents4j
cd documents4j-local-demo
mvn jetty:run

Konvertera Word till PDF via Java‑bibliotek

Det öppna källkodsbiblioteket documents4j låter programvaruutvecklare konvertera flera dokumenttyper till PDF i Java‑applikationer. Biblioteket stödjer Micro Word (DOC, DOCX), Excel (XLS, XLSX), PowerPoint (PPT, PPTX), RTF, OpenDocument‑format och mycket mer. Den breda formatkompatibiliteten säkerställer sömlös dokumentkonvertering för olika användningsfall. Här är ett enkelt exempel som demonstrerar hur utvecklare kan konvertera ett Word‑dokument (.docx) till PDF med Java‑kommandon.

Hur konverterar man Word till PDF via Java‑bibliotek?

import com.documents4j.api.DocumentType;
import com.documents4j.api.IConverter;
import com.documents4j.job.LocalConverter;

import java.io.File;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;

public class DocumentConverter {
    public static void main(String[] args) {
        // 1. Specify the source and target files
        File wordFile = new File("C:/documents/input.docx");
        File targetFile = new File("C:/documents/output.pdf");

        // 2. Initialize the converter (Local instance)
        IConverter converter = LocalConverter.builder()
                .workerPool(20, 25, 2, TimeUnit.SECONDS)
                .processTimeout(5, TimeUnit.SECONDS)
                .build();

        // 3. Execute the conversion fluently
        boolean success = converter.convert(wordFile).as(DocumentType.MS_WORD)
                                   .to(targetFile).as(DocumentType.PDF)
                                   .execute();

        if (success) {
            System.out.println("Conversion completed successfully!");
        }

        // 4. Always shut down the converter to release native resources
        converter.shutDown();
    }
}

Fjärrkonverterare med REST‑API‑server

Det öppna källkodsbiblioteket documents4j låter utvecklare anpassa PDF‑utdata vid konvertering av dokument till PDF. Till exempel kan utvecklare kontrollera sidstorlek (A4, Letter o.s.v.), marginaler, orientering (stående eller liggande) samt sidhuvud/sidfot. Dessutom kan de tillämpa CSS‑stilar på HTML‑innehåll för exakt visuell kontroll, hantera typsnittsfamiljer, färger, storlekar och mycket mer. Följande kodsnuttar visar hur man applicerar olika inställningar på den PDF som genereras av biblioteket.

Hur utför man fjärrkonvertering av Word‑dokument i Java‑appar?

import com.documents4j.api.DocumentType;
import com.documents4j.api.IConverter;
import com.documents4j.job.RemoteConverter;

import java.io.*;
import java.util.concurrent.TimeUnit;

public class RemoteConverterExample {

    public static void main(String[] args) throws Exception {

        // The RemoteConverter connects to the standalone server
        IConverter converter = RemoteConverter.builder()
                .baseFolder(new File("/tmp/documents4j"))
                .workerPool(10, 20, 5, TimeUnit.SECONDS)
                // Timeout for each HTTP conversion request
                .requestTimeout(30, TimeUnit.SECONDS)
                // URI of the running conversion server
                .baseUri("http://192.168.1.100:9998")
                .build();

        // Convert using InputStream / OutputStream — recommended for RemoteConverter
        // because data is already serialized for HTTP transport
        try (InputStream source = new FileInputStream("/input/contract.docx");
             OutputStream target = new FileOutputStream("/output/contract.pdf")) {

            boolean success = converter
                    .convert(source).as(DocumentType.MS_WORD)
                    .to(target).as(DocumentType.PDF)
                    .execute();

            System.out.println("Remote conversion success: " + success);
        }

        converter.shutDown();
    }
}          

SSL‑kryptering och grundläggande autentisering

documents4j‑biblioteket ger Java‑utvecklare möjlighet att enkelt skapa dynamiska och sofistikerade PDF‑dokument. Det upptäcker automatiskt formatet på indatafilen och bearbetar den därefter. Oavsett om det är en Word‑, Excel‑, PowerPoint‑ eller RTF‑fil, konverterar biblioteket den sömlöst till PDF utan ytterligare konfigurationer. Här är ett exempel som visar hur utvecklare kan konvertera en Markdown‑fil till PDF i Java‑applikationer.

Asynkron och prioriterad bearbetning

Conversions can be resource-intensive. documents4j allows you to schedule conversions to run in the background (asynchronously) using a Future return type. Furthermore, it supports a prioritization mechanism. If your application handles a high volume of requests, you can assign a higher priority to critical documents to ensure they are moved to the front of the internal job queue.

 Svenska