1. Məhsullar
  2.   Söz emalı
  3.   Java
  4.   documents4j
 
  

Yüksək keyfiyyətli Word sənədini PDF-ə çevirmək üçün pulsuz Java API

Öncə çıxan Açıq mənbəli kitabxana Java inkişafçılarının MS Office DOCX, XLSX və PDF fayllarını yerli tətbiqlərdən istifadə edərək yüksək dəqiqliklə çevirməsinə imkan verir.

Documents4j nədir?

documents4j güclü açıq mənbəli Java kitabxanasıdır və sənədləri fərqli formatlar arasında, məsələn DOCX-dən PDF-ə və ya XLSX-dən PDF-ə çevirmək üçün hazırlanıb. Bir çox ənənəvi kitabxanalardan fərqli olaraq, documents4j çevrim prosesini Microsoft Word və Excel kimi yerli tətbiqlərə həvalə edir, minimal formatlama problemləri ilə yüksək keyfiyyətli çıxış təmin edir. Kitabxana fərqli yanaşma qəbul edir. Çevrim məntiqini yenidən həyata keçirmək yerinə, körpü kimi fəaliyyət göstərir və bu işi artıq bu formatları mükəmməl bilən yerli tətbiqlərə (məsələn Microsoft Word və ya Excel) həvalə edir. Bu, çıxış sənədinin—məsələn Word faylından yaradılmış PDF-in—MS Office-də əl ilə "Save As" (Farklı saxla) seçimini etdiyiniz zaman olduğu kimi görünməsini təmin edir.

documents4j-nin əsas dəyəri dəqiqliyindədir. Hər bir kənar boşluq və şriftin tam qorunması lazım olan peşəkar səviyyəli sənədləşdirmə tələb edən müəssisələr üçün açıq mənbəli parsellərə etibar etmək riskli ola bilər. documents4j, şablonlardan faktura və ya hesabat yaratmaq, Windows-əsaslı mühitdə sənəd iş axınlarını avtomatlaşdırmaq və uzaq server konfiqurasiyası ilə əsas tətbiqinizdən çevrim məntiqini ayırmaq üçün xüsusilə faydalıdır. Yerli tətbiqlərdən istifadə etməklə, ənənəvi kitabxanalara nisbətən bənzərsiz dəqiqlik təmin edilir. Yerli və uzaq işləməni, eyni anda icra və yükləmə balanslaşdırmasını dəstəkləməsi onu müəssisə səviyyəli sistemlər üçün yüksək uyğunluq verir.

Previous Next

documents4j ilə başlayın

documents4j quraşdırmağın tövsiyə edilən yolu Maven repozitoriyası vasitəsilədir. Sadə konfiqurasiyalarla documents4j kitabxanasını Maven layihələrinizə asanlıqla əlavə edə bilərsiniz.

documents4j üçün Maven repozitoriyası


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

documents4j-i GitHub-dan quraşdırın


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

Java kitabxanası vasitəsilə Word-un PDF-ə çevrilməsi

documents4j-in ürəyində sənəd çevrimini təbii və oxunaqlı edən zərif dizaynlı fluent API yerləşir. IConverter interfeysi sizə mənbə faylını və ya axını göstərməyə, giriş və çıxış sənəd tiplərini bəyan etməyə, çevrim prioritetini təyin etməyə və sinxron və ya asinxron icra arasından seçim etməyə imkan verən builder‑tərzli zəncir təqdim edir — hamısı bir təmiz ifadədə. API bütün tətbiq detalları gizlədir, belə ki biznes məntiqiniz yerli və ya uzaq konvertorun işlədiyini bilməyə ehtiyac duymur. Aşağıda çevrim prosesini necə həyata keçirmək göstərişi verən sadə bir nümunə var.

Java kitabxanası vasitəsilə Word-u PDF-ə necə çevirmək olar?

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();
    }
}

REST API serveri ilə uzaq konvertor

Hər bir Java tətbiq serverində MS Office quraşdırılmış olmur — və olmalı da deyil. documents4j bu problemi daxili Remote Converter arxitekturası ilə həll edir. Öz-özünə çalışan bir çevrim serveri (daxili olaraq LocalConverter istifadə edir) MS Office quraşdırılmış fərqli bir Windows maşınında işləyir və REST API məruzə edir. Java tətbiqiniz HTTP üzərindən sənədləri göndərən və çevrilmiş faylı qəbul edən RemoteConverter istifadə edir. Bütün əl sıxması tətbiq kodundan gizlidir; eyni IConverter interfeysi hər iki tərəfdə istifadə olunur.

Java tətbiqlərində uzaq Word sənədlərinin çevrimini necə həyata keçirmək olar?

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ələmə və əsas doğrulama

İstehsalat mühitlərində sənəd faylları tez-tez həssas biznes, hüquqi və ya şəxsi məlumatlar ehtiva edir. Onları sadə HTTP üzərindən ötürmək ciddi təhlükəsizlik riski yaradır. documents4j kitabxanası çevrim müştərisi və serveri arasında SSL/TLS şifrələməsini daxili dəstəyi ilə həll edir, bu Java‑ın standart SSLContext‑i vasitəsilə konfiqurasiya edilə bilər. Öz-özünə çalışan server həm də yalnız icazəli müştərilərin çevrim sorğularını göndərə bilməsi üçün HTTP Basic Authentication‑ı dəstəkləyir. Hər iki təhlükəsizlik funksiyası minimal konfiqurasiya ilə aktivləşdirilə bilər, bu da documents4j‑i tənzimlənən sənayelərdə belə işlək həll edir.

Asinxron və prioritetli işləmə

Çevrimlər resurs tələb edə bilər. documents4j sizə çevrimləri arxa planda (asinxron) Future tipində dönüş dəyəri ilə planlaşdırmağa imkan verir. Üstəlik, prioritetləşdirmə mexanizmini dəstəkləyir. Tətbiqiniz yüksək sayda sorğu ilə məşğul olarsa, kritik sənədlərə daha yüksək prioritet verərək onların daxili iş növbəsinin əvvəlinə keçirilməsini təmin edə bilərsiniz.

 Azəri