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.
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