Bezmaksas Java API, lai konvertēt augstas kvalitātes Word dokumentu uz PDF
Vadoša atvērtā koda bibliotēka ļauj Java izstrādātājiem konvertēt MS Office DOCX, XLSX un PDF failus ar augstu precizitāti, izmantojot vietējās lietotnes.
Kas ir Documents4j ?
documents4j ir spēcīga atvērtā koda Java bibliotēka, kas paredzēta dokumentu pārveidošanai starp dažādiem formātiem, piemēram, DOCX uz PDF vai XLSX uz PDF. Atšķirīgi no daudzām tradicionālajām bibliotēkām, documents4j delegē pārveidošanas procesu uz vietējām lietotnēm, piemēram, Microsoft Word un Excel, nodrošinot augstas kvalitātes rezultātu ar minimālām formatēšanas problēmām. Bibliotēka pieņem citu pieeju. Tā vietā, lai no jauna īstenotu pārveidošanas loģiku, tā darbojas kā tilts, pārsūtot smago darbu uz vietējām lietotnēm (piemēram, Microsoft Word vai Excel), kas jau perfekti saprot šos formātus. Tas nodrošina, ka izvada dokuments — piemēram, PDF, kas ģenerēts no Word faila — izskatās tāpat, kā tas izskatītos, ja manuāli klikšķinātu “Saglabāt kā” MS Office programmā.
Galvenais documents4j vērtības faktors ir tā precizitāte. Uzņēmumiem, kas prasa profesionāla līmeņa dokumentāciju, kur katra mala un fonts jāpaliek nepārveidots, balstīties uz atvērtā koda parseriem var būt riskanti. documents4j ir īpaši noderīgs rēķinu vai atskaišu ģenerēšanai no veidnēm, dokumentu darba plūsmu automatizēšanai Windows vidē un konvertēšanas loģikas atdalīšanai no galvenās lietojumprogrammas, izmantojot attālu serveri. Izmantojot vietējās lietotnes, tas nodrošina nepārspējamu precizitāti salīdzinājumā ar tradicionālajām bibliotēkām. Tā atbalsts vietējai un attālinātai apstrādei, vienlaicīgai izpildei un slodzes balansēšanai padara to ļoti piemērotu uzņēmuma līmeņa sistēmām.
Kā sākt ar documents4j
Ieteicamais veids, kā instalēt documents4j, ir caur Maven krātuvi. Jūs varat vienkārši pievienot documents4j bibliotēku saviem Maven projektiem ar vienkāršām konfigurācijām.
Maven krātuve 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>
Instalēt documents4j no GitHub
git clone https://github.com/documents4j/documents4j.git
cd documents4j
cd documents4j-local-demo
mvn jetty:run
Word konvertēšana uz PDF, izmantojot Java bibliotēku
documents4j sirdī ir eleganti izstrādāts plūstošais API, kas padara dokumentu pārveidošanu dabiski saprotamu un lasāmu. IConverter interfeiss nodrošina būvētāja stilā ķēdi, kas ļauj norādīt avota failu vai straumi, definēt ievades un izvada dokumenta tipus, noteikt pārveidošanas prioritāti un izvēlēties starp sinhrono vai asinhrono izpildi — viss vienā skaidrā izteiksmē. API slēpj visas īstenošanas detaļas, tāpēc jūsu biznesa loģikai nekad nav jāzina, vai zemāk darbojas vietējais vai attālināts konvertētājs. Šeit ir vienkāršs piemērs, kas parāda, kā īstenot pārveidošanas procesu.
Kā konvertēt Word uz PDF, izmantojot Java bibliotēku?
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();
}
}
Attālais konvertētājs ar REST API serveri
Nē visi Java lietojumprogrammu serveri ir uzstādījuši MS Office — un tiem nevajadzētu. documents4j to risina ar iebūvētu attālā konvertētāja arhitektūru. Neatkarīgs konvertēšanas serveris (kura iekšienē tiek izmantots LocalConverter) darbojas atsevišķā Windows mašīnā ar uzstādītu MS Office un nodrošina REST API. Jūsu Java lietojumprogramma izmanto RemoteConverter, kas sūta dokumentus pār HTTP un saņem atpakaļ konvertēto failu. Viss šis savienojuma process ir neredzams lietojumprogrammas kodam; tā pati IConverter interfeiss tiek izmantots abās pusēs.
Kā veikt attālu Word dokumentu pārveidošanu Java lietojumprogrammā?
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 šifrēšana un pamata autentifikācija
Ražošanas vidē dokumentu faili bieži satur sensitīvu uzņēmuma, juridisku vai personisku informāciju. To pārsūtīšana pa vienkāršu HTTP ir nopietns drošības risks. documents4j bibliotēka šo risina, nodrošinot iebūvētu SSL/TLS šifrēšanas atbalstu starp konvertēšanas klientu un serveri, ko var konfigurēt, izmantojot Java standarta SSLContext. Neatkarīgais serveris arī atbalsta HTTP pamata autentifikāciju, lai nodrošinātu, ka tikai pilnvaroti klienti var iesniegt pārveidošanas pieprasījumus. Abas drošības funkcijas var aktivizēt ar minimālu konfigurāciju, padarot documents4j par piemērotu risinājumu pat regulētās nozarēs.
Asinhronais un prioritārais apstrāde
Pārveidojumi var būt resursietilpīgi. documents4j ļauj plānot pārveidošanas izpildi fonā (asinhroni), izmantojot Future