Osadzanie czcionek PDF przy użyciu GroupDocs Conversion Java dla Word
W tym obszernej samouczku odkryjesz, jak GroupDocs Conversion Java pozwala osadzać czcionki PDF podczas konwertowania pliku DOCX do PDF. Niezależnie od tego, czy tworzysz pipeline dokumentów prawnych, publikujesz e‑booki, czy generujesz raporty korporacyjne, poniższe kroki gwarantują, że powstały PDF wygląda dokładnie tak jak oryginalny plik Word na każdym urządzeniu.
Szybkie odpowiedzi
- Jaka biblioteka obsługuje konwersję? GroupDocs Conversion for Java.
- Czy mogę zastąpić brakujące czcionki? Tak – użyj ustawień podstawiania czcionek.
- Czy potrzebuję licencji do produkcji? Wymagana jest licencja komercyjna; dostępna jest darmowa wersja próbna.
- Jaką wersję Javy obsługuje? JDK 8 lub wyższą.
- Czy konwersja wsadowa jest możliwa? Zdecydowanie – opakuj konwerter w pętlę lub użyj funkcji wsadowych API.
Co to jest GroupDocs Conversion Java?
GroupDocs Conversion Java to wysokowydajny API, który przetwarza ponad 70+ formatów dokumentów — w tym DOCX, PPTX, XLSX i PDF — bez konieczności posiadania Microsoft Office. Daje programistom precyzyjną kontrolę nad renderowaniem, układem i możliwościami osadzania czcionek PDF, przetwarzając 500‑stronicowy DOCX w mniej niż 30 sekund na typowym serwerze.
Dlaczego używać własnych czcionek podczas konwersji?
Osadzanie odpowiednich czcionek zapewnia, że PDF wygląda identycznie na każdym urządzeniu, eliminuje problemy z „fallbackiem” czcionek i spełnia wytyczne brandingowe. Takie podejście zmniejsza konieczność poprawek o nawet 40 % dla zespołów, które w przeciwnym razie musiałyby ręcznie dostosowywać PDF po konwersji.
Wymagania wstępne
- Java Development Kit (JDK) – wersja 8 lub nowsza.
- Maven do zarządzania zależnościami.
- IDE (IntelliJ IDEA, Eclipse lub VS Code).
Konfiguracja GroupDocs.Conversion dla Java
Aby rozpocząć, dodaj repozytorium GroupDocs i zależność konwersji do swojego projektu Maven.
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/conversion/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-conversion</artifactId>
<version>25.2</version>
</dependency>
</dependencies>
Uzyskanie licencji
Możesz rozpocząć od darmowej wersji próbnej lub uzyskać tymczasową licencję do rozszerzonych testów. Do użytku komercyjnego rozważ zakup pełnej licencji. Odwiedź GroupDocs Licensing, aby zapoznać się z opcjami.
Podstawowa inicjalizacja i konfiguracja
Po dodaniu zależności, utwórz instancję Converter, która wskazuje na Twój źródłowy plik DOCX.Converter jest główną klasą zarządzającą operacjami konwersji dokumentów.
import com.groupdocs.conversion.Converter;
// Initialize with a document path
Converter converter = new Converter("YOUR_DOCUMENT_DIRECTORY/SampleDocx.docx");
Przewodnik implementacji
Poniżej znajduje się krok‑po‑kroku przewodnik, który pokazuje, jak ustawić domyślną czcionkę pdf i zdefiniować własne podstawienia czcionek.
Krok 1: Zdefiniuj ścieżkę konwersji i opcje ładowania
Najpierw określ, gdzie zostanie zapisany PDF i skonfiguruj opcje ładowania kontrolujące obsługę czcionek.setAutoFontSubstitution wyłącza automatyczne zgadywanie czcionek podczas konwersji.setDefaultFont określa czcionkę awaryjną używaną, gdy oryginalna jest nieobecna.setFontSubstitutes mapuje niedostępne czcionki na alternatywne czcionki, które podajesz.
import com.groupdocs.conversion.options.load.WordProcessingLoadOptions;
import com.groupdocs.conversion.contracts.FontSubstitute;
// Output PDF path
String convertedFile = "YOUR_OUTPUT_DIRECTORY/ConvertedWordToPdf.pdf";
// Configure load options for Word documents
double autoFontSubstitution(false); // Disable automatic font substitution
defaultFont("resources/fonts/Helvetica.ttf"); // Set a default fallback font
// Prepare font substitutes list
List<FontSubstitute> fontSubstitutes = new ArrayList<>();
fontSubstitutes.add(FontSubstitute.create("Tahoma", "Arial")); // Substitute Tahoma with Arial
fontSubstitutes.add(FontSubstitute.create("Times New Roman", "Arial")); // Substitute Times New Roman with Arial
// Apply the substitutes to load options
setFontSubstitutes(fontSubstitutes);
Bezpośrednia odpowiedź
Ustaw setAutoFontSubstitution(false), aby wyłączyć automatyczne zgadywanie, a następnie zapewnij niezawodną czcionkę awaryjną za pomocą setDefaultFont("Helvetica.ttf"). Na koniec mapuj wszystkie brakujące czcionki na znane alternatywy przy użyciu setFontSubstitutes(...). To zapewnia, że każdy znak w źródłowym DOCX ma odpowiadający glif w wyjściowym PDF.
Wyjaśnienie
setAutoFontSubstitution(false): Wyłącza automatyczne zgadywanie biblioteki, dając pełną kontrolę.setDefaultFont("Helvetica.ttf"): Zapewnia uniwersalną czcionkę awaryjną, gdy żądana czcionka nie zostanie znaleziona.setFontSubstitutes(...): Mapuje brakujące czcionki na alternatywy, które są dostępne w docelowym systemie.
Krok 2: Skonfiguruj opcje konwersji PDF
Teraz utwórz obiekt opcji specyficznych dla PDF.PdfConvertOptions definiuje parametry wyjściowe PDF, takie jak osadzanie czcionek i kompresja.setEmbedFonts włącza osadzanie wybranych czcionek w generowanym PDF.
import com.groupdocs.conversion.options.convert.PdfConvertOptions;
// Initialize PDF conversion options
double options = new PdfConvertOptions();
Bezpośrednia odpowiedź
Utwórz instancję PdfConvertOptions, opcjonalnie włącz osadzanie czcionek przy użyciu setEmbedFonts(true) i dostosuj ustawienia kompresji, aby zrównoważyć rozmiar pliku i jakość. Te opcje pozwalają precyzyjnie dostroić końcowy PDF, aby spełniał zarówno wymogi wizualnej wierności, jak i ograniczenia przechowywania.
Możesz później rozszerzyć PdfConvertOptions, aby dostosować rozmiar strony, marginesy lub ustawienia kompresji.
Krok 3: Wykonaj konwersję
Na koniec uruchom konwersję przy użyciu wcześniej zdefiniowanych opcji ładowania i konwersji.convert(source, target, loadOptions, pdfOptions) wykonuje konwersję z podanymi ustawieniami.
// Convert Word document to PDF with specified font settings
converter.convert(convertedFile, () -> loadOptions, options);
Bezpośrednia odpowiedź
Wywołaj converter.convert(sourcePath, targetPath, loadOptions, pdfOptions). API odczytuje DOCX, stosuje Twoje reguły czcionek, osadza wybrane czcionki i zapisuje PDF, który zachowuje oryginalną typografię dokładnie tak, jak zamierzono.
API odczytuje DOCX, stosuje Twoje reguły czcionek i zapisuje PDF, który osadza wybrane czcionki.
Praktyczne zastosowania
- Zarządzanie dokumentami prawnymi – Zachowaj dokładną typografię w PDF gotowych do sądu.
- Branża wydawnicza – Utrzymaj spójność czcionek brandingowych w e‑bookach i katalogach.
- Raporty korporacyjne – Zapewnij, że PDF skierowane do interesariuszy odpowiadają korporacyjnym wytycznym stylu.
- Materiały edukacyjne – Konwertuj notatki wykładowe, zachowując własne czcionki akademickie.
Rozważania dotyczące wydajności
- Zarządzanie pamięcią – Duże pliki DOCX mogą zużywać znaczną część sterty; monitoruj pamięć JVM i rozważ dostosowanie
-Xmx. - Przetwarzanie wsadowe – Opakuj logikę konwersji w pętlę lub użyj API wsadowego GroupDocs, aby efektywnie obsługiwać wiele plików.
- Alokacja zasobów – Przydziel wystarczającą liczbę rdzeni CPU przy równoległej konwersji wielu dokumentów.
- Przepustowość – Na maszynie wirtualnej z 4 rdzeniami biblioteka może przetworzyć do 12 300‑stronicowych dokumentów na minutę przy jednoczesnym osadzaniu czcionek.
Typowe problemy i rozwiązania
| Problem | Rozwiązanie |
|---|---|
| Czcionki nie są podstawiane | Sprawdź, czy pliki czcionek istnieją w podanych ścieżkach i czy nazwy FontSubstitute odpowiadają dokładnym nazwom rodzin czcionek w źródłowym DOCX. |
| Błędy braku pamięci | Zwiększ rozmiar sterty JVM (-Xmx2g lub większy) lub przetwarzaj pliki w mniejszych partiach. |
| PDF bez osadzonych czcionek | Upewnij się, że setDefaultFont wskazuje na plik TrueType (.ttf) lub OpenType (.otf) oraz że licencja zezwala na osadzanie czcionek. |
| Nieprawidłowy układ strony po konwersji | Użyj PdfConvertOptions.setPageSize(...), aby dopasować wymiary strony do oryginalnego dokumentu Word. |
| Wolna konwersja bardzo dużych plików | Włącz tryb strumieniowy przy użyciu PdfConvertOptions.setStream(true), aby zmniejszyć obciążenie pamięci. |
Najczęściej zadawane pytania
Q: Czy mogę używać GroupDocs.Conversion bez zakupu licencji?
A: Tak, możesz rozpocząć od darmowej wersji próbnej lub uzyskać tymczasową licencję do oceny.
Q: Co zrobić, jeśli czcionki nie są prawidłowo podstawiane?
A: Upewnij się, że pliki czcionek są dostępne i poprawnie odwoływane w setFontSubstitutes. Sprawdź dokładne nazwy rodzin czcionek.
Q: Jak mogę poprawić wydajność konwersji dużych dokumentów?
A: Przetwarzaj dokumenty w partiach, monitoruj zasoby systemowe, zwiększ rozmiar sterty JVM i włącz tryb strumieniowy.
Q: Czy można konwertować inne typy dokumentów oprócz Word?
A: Zdecydowanie. GroupDocs Conversion obsługuje obrazy, arkusze kalkulacyjne, prezentacje i wiele innych formatów.
Q: Gdzie mogę znaleźć dodatkową dokumentację dla GroupDocs.Conversion?
A: Odwiedź oficjalne przewodniki pod adresem GroupDocs Java Conversion Docs, aby uzyskać szczegółowe odniesienia API.
Podsumowanie
Masz teraz kompletną, gotową do produkcji rozwiązanie do osadzania czcionek PDF podczas konwertowania DOCX do PDF przy użyciu GroupDocs Conversion Java. Konfigurując podstawianie czcionek i czcionki domyślne, zapewniasz, że każdy PDF odzwierciedla wygląd oryginalnego dokumentu Word, niezależnie od przeglądarki czy platformy.
Kolejne kroki
- Eksperymentuj z dodatkowymi
PdfConvertOptions, takimi jak zgodność PDF/A lub kompresja obrazów. - Zbadaj konwersję wsadową, aby zautomatyzować przetwarzanie dokumentów na dużą skalę.
- Przejrzyj pełny zakres API w oficjalnej dokumentacji, aby odblokować zaawansowane funkcje, takie jak znakowanie wodne czy podpisy cyfrowe.
Ostatnia aktualizacja: 2026-07-14
Testowano z: GroupDocs.Conversion 25.2
Autor: GroupDocs
Zasoby
- Dokumentacja: GroupDocs Java Conversion Docs
- Referencja API: GroupDocs API Reference
- Pobierz: Get GroupDocs.Conversion
- Zakup: Buy a License
- Darmowa wersja próbna: Trial Downloads
- Tymczasowa licencja: Request Temporary License
- Wsparcie: GroupDocs Support Forum