Utwórz podpis kodu kreskowego java – aktualizuj kody kreskowe PDF
Kiedy musisz przemieścić kody kreskowe na tysiącach etykiet wysyłkowych lub dostosować ich położenie po przebudowie szablonu, ręczne podejście jest podatne na błędy i czasochłonne. W tym przewodniku dowiesz się, jak utworzyć podpis kodu kreskowego java, a następnie programowo zmienić jego pozycję, rozmiar i inne właściwości przy użyciu GroupDocs.Signature for Java. Podejście działa dla plików PDF, Word, Excel, PowerPoint oraz obrazów, zapewniając jednolite API dla wszystkich scenariuszy automatyzacji dokumentów.
Szybkie odpowiedzi
- Co oznacza „create barcode signature”? To generowanie obiektu
BarcodeSignature, który może być umieszczany, przenoszony lub edytowany w dokumencie za pomocą API. - Czy mogę zmienić rozmiar kodu kreskowego po jego utworzeniu? Tak – użyj
setWidth/setHeightlub zmodyfikuj współrzędneLeft/Top. - Czy potrzebna jest licencja do aktualizacji kodów kreskowych? Wersja próbna działa w środowisku deweloperskim; pełna licencja jest wymagana w produkcji.
- Czy to działa tylko z PDF‑ami? Nie – ten sam kod działa z Word, Excel, PowerPoint oraz popularnymi formatami obrazów.
- Ile dokumentów mogę przetworzyć jednocześnie? Obsługa przetwarzania wsadowego jest dostępna; wystarczy zarządzać pamięcią przy użyciu try‑with‑resources.
Co to jest create barcode signature java?
Create barcode signature java to proces tworzenia obiektu BarcodeSignature, który reprezentuje kod kreskowy osadzony jako cyfrowy podpis w dokumencie. Korzystając z API GroupDocs.Signature, możesz programowo dodać nowy kod kreskowy, zlokalizować istniejące lub zmodyfikować ich właściwości, takie jak pozycja, rozmiar i zakodowany tekst, bez otwierania pliku w edytorze wizualnym.
Dlaczego warto używać GroupDocs.Signature dla Java?
GroupDocs.Signature obsługuje ponad 50 formatów wejściowych i wyjściowych — w tym PDF, DOCX, XLSX, PPTX oraz popularne typy obrazów — i potrafi przetwarzać wielostronicowe PDF‑y przy zużyciu pamięci poniżej 100 MB. Jego API wsadowe obsługuje do 10 000 dokumentów na jedną sesję na standardowym serwerze, co czyni aktualizacje na dużą skalę wykonalnymi.
Wymagania wstępne
- GroupDocs.Signature for Java ≥ 23.12 (wcześniejsze wersje nie zawierają metod aktualizacji używanych w tym przewodniku).
- Java Development Kit 8 lub nowszy.
- IDE, np. IntelliJ IDEA, Eclipse lub VS Code.
- Podstawowa znajomość Javy (klasy, obiekty, obsługa wyjątków).
Wymagane biblioteki
Dodaj GroupDocs.Signature do projektu przy użyciu wybranego narzędzia budowania.
Maven
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-signature</artifactId>
<version>23.12</version>
</dependency>
Gradle
implementation 'com.groupdocs:groupdocs-signature:23.12'
Bezpośrednie pobranie – pobierz najnowszy JAR z Wydania GroupDocs.Signature dla Java i dodaj go do classpath.
Uzyskanie licencji
GroupDocs.Signature działa zarówno z licencją próbną, jak i pełną:
- Bezpłatna wersja próbna – idealna do proof‑of‑concept.
- Licencja tymczasowa – do rozszerzonej oceny w konkretnym projekcie.
- Pełna licencja – usuwa znaki wodne i limity użycia w produkcji.
Wskazówka: Zacznij od wersji próbnej, a następnie przejdź na pełną po zweryfikowaniu przepływu pracy.
Jak utworzyć podpis kodu kreskowego java
Krok 1: zainicjalizuj instancję Signature
Signature to główna klasa wejściowa, która ładuje dokument i udostępnia metody do wyszukiwania, dodawania i aktualizacji podpisów.
Bezpośrednia odpowiedź
Utwórz obiekt Signature, podając ścieżkę do dokumentu, który chcesz edytować; spowoduje to wczytanie pliku do pamięci i przygotowanie go do operacji na kodach kreskowych. Klasa Signature jest bramą do wszystkich działań związanych z podpisami. Odczytuje plik i udostępnia metody do wyszukiwania, dodawania lub aktualizacji podpisów.
import com.groupdocs.signature.Signature;
import java.nio.file.Paths;
String filePath = "YOUR_DOCUMENT_DIRECTORY/your_document.pdf";
Signature signature = new Signature(filePath);
Wskazówka: Zweryfikuj ścieżkę pliku przed utworzeniem instancji
Signature, aby uniknąćFileNotFoundException.
Krok 2: wyszukaj podpisy kodów kreskowych
BarcodeSearchOptions definiuje kryteria używane przy skanowaniu dokumentu w poszukiwaniu podpisów kodów kreskowych.
Bezpośrednia odpowiedź
Użyj BarcodeSearchOptions wraz z metodą search, aby uzyskać listę wszystkich podpisów kodów kreskowych w dokumencie. Nie możesz zaktualizować tego, czego nie znajdziesz. GroupDocs.Signature oferuje potężne API wyszukiwania, które filtruje podpisy według typu, numeru strony lub formatu kodu kreskowego.
import com.groupdocs.signature.options.search.BarcodeSearchOptions;
import com.groupdocs.signature.domain.signatures.BarcodeSignature;
import java.util.List;
BarcodeSearchOptions options = new BarcodeSearchOptions();
List<BarcodeSignature> signatures = signature.search(BarcodeSignature.class, options);
Masz teraz listę obiektów BarcodeSignature, z których każdy udostępnia właściwości takie jak Left, Top, Width, Height, Text i EncodeType.
Uwaga o wydajności: W przypadku bardzo dużych PDF‑ów ogranicz wyszukiwanie do konkretnych stron lub typów kodów kreskowych, aby przyspieszyć wykonanie.
Krok 3: zaktualizuj właściwości kodu kreskowego
BarcodeSignature reprezentuje pojedynczy kod kreskowy osadzony w dokumencie i udostępnia settery dla jego atrybutów wizualnych.
Bezpośrednia odpowiedź
Zmodyfikuj Left, Top, Width i Height wybranego BarcodeSignature i wywołaj signature.update, aby zapisać zmiany w nowym pliku. Dzięki temu możesz zmienić rozmiar kodu kreskowego lub przemieścić go w dowolne miejsce, zachowując oryginalny plik nienaruszonym.
import java.io.File;
import com.groupdocs.signature.exception.GroupDocsSignatureException;
String fileName = Paths.get(filePath).getFileName().toString();
String outputFilePath = new File("YOUR_OUTPUT_DIRECTORY/UpdateBarcode/" + fileName).getPath();
checkDir(outputFilePath);
if (signatures.size() > 0) {
BarcodeSignature barcodeSignature = signatures.get(0);
// Update the barcode's position and size
barcodeSignature.setLeft(100);
barcodeSignature.setTop(100);
// Apply the changes to the document
boolean result = signature.update(outputFilePath, barcodeSignature);
if (result) {
System.out.println("Signature with Barcode '" +
barcodeSignature.getText() + "' and encode type '"+
barcodeSignature.getEncodeType().getTypeName() + "' was updated in the document ['" +
fileName + "'].");
}
} catch (GroupDocsSignatureException e) {
System.err.println("Error updating signature: " + e.getMessage());
}
Kluczowe punkty
setLeft/setTopprzesuwają kod kreskowy (współrzędne mierzone od lewego górnego rogu).updatezapisuje nowy plik; oryginał pozostaje niezmieniony.- Umieść wywołanie w bloku
try‑catch, aby obsłużyć ewentualnyGroupDocsSignatureException.
Kiedy aktualizować podpisy kodów kreskowych?
Powinieneś aktualizować podpisy kodów kreskowych, gdy zmienia się układ dokumentu, wymagania regulacyjne lub gdy musisz przetworzyć wsadowo istniejące pliki po migracji danych. Programowa aktualizacja eliminuje ręczną edycję, zmniejsza liczbę błędów i zapewnia spójne rozmieszczenie w tysiącach plików.
Typowe problemy i rozwiązania
Problem 1: „Nie znaleziono podpisów kodów kreskowych”
Objaw: Wyszukiwanie zwraca pustą listę, mimo że kody kreskowe są widoczne w PDF.
Możliwe przyczyny
- Kody kreskowe są osadzone jako obrazy lub pola formularza, a nie jako obiekty podpisu.
- Dokument jest zabezpieczony hasłem.
- Filtrujesz konkretny typ kodu kreskowego, który nie pasuje.
Rozwiązanie
BarcodeSearchOptions options = new BarcodeSearchOptions();
options.setAllPages(true); // Search all pages, not just the first
List<BarcodeSignature> signatures = signature.search(BarcodeSignature.class, options);
if (signatures.isEmpty()) {
System.out.println("No barcode signatures found. The barcodes might be images, not signature objects.");
}
Problem 2: Zaktualizowany dokument wygląda na uszkodzony
Objaw: PDF nie otwiera się po aktualizacji.
Możliwe przyczyny
- Brak wystarczającej przestrzeni dyskowej.
- Katalog wyjściowy nie istnieje.
- Uprawnienia systemu plików blokują zapis.
Rozwiązanie
File outputDir = new File("YOUR_OUTPUT_DIRECTORY/UpdateBarcode/");
if (!outputDir.exists()) {
outputDir.mkdirs(); // Create directories if they don't exist
}
// Check write permissions
if (!outputDir.canWrite()) {
throw new IOException("Cannot write to output directory: " + outputDir.getAbsolutePath());
}
Problem 3: Spadek wydajności przy dużych dokumentach
Objaw: Przetwarzanie znacznie spowalnia się dla PDF‑ów powyżej ~50 stron.
Rozwiązanie
BarcodeSearchOptions options = new BarcodeSearchOptions();
options.setPageNumber(1); // Start with page 1
options.setPagesSetup(new PagesSetup());
options.getPagesSetup().setFirstPage(true);
options.getPagesSetup().setLastPage(false);
Wskazówki dotyczące optymalizacji wydajności
Zarządzanie pamięcią przy operacjach wsadowych
Przetwarzaj po jednym dokumencie i pozwól Javie automatycznie zwalniać zasoby:
List<String> documentPaths = getDocumentList();
for (String path : documentPaths) {
try (Signature sig = new Signature(path)) {
// Process one document at a time
// Signature instance is auto‑closed after each iteration
}
}
Buforowanie wyników wyszukiwania
Jeśli musisz zmodyfikować kilka właściwości tych samych kodów kreskowych, wyszukaj raz i ponownie użyj listy:
List<BarcodeSignature> signatures = signature.search(BarcodeSignature.class, options);
// Update multiple properties
for (BarcodeSignature barcode : signatures) {
barcode.setLeft(100);
barcode.setTop(100);
barcode.setWidth(200);
barcode.setHeight(50);
}
// Single update call with all changes
signature.update(outputPath, signatures);
Przetwarzanie równoległe dla masowych wsadów
Wykorzystaj strumienie Java, aby przyspieszyć obsługę tysięcy dokumentów:
documentPaths.parallelStream().forEach(path -> {
try (Signature sig = new Signature(path)) {
List<BarcodeSignature> barcodes = sig.search(BarcodeSignature.class, new BarcodeSearchOptions());
if (!barcodes.isEmpty()) {
BarcodeSignature barcode = barcodes.get(0);
barcode.setLeft(50); // New position for smaller boxes
barcode.setTop(10);
sig.update(generateOutputPath(path), barcode);
}
} catch (Exception e) {
logError(path, e);
}
});
Praktyczne zastosowania
Przypadek użycia 1: automatyczna aktualizacja etykiet logistycznych
Firma kurierska zmieniła wymiary pudeł, co wymagało przemieszczenia kodów kreskowych na 50 000 istniejących etykiet. Fragment kodu z równoległym przetwarzaniem skrócił zadanie z kilku dni do kilku godzin.
Przypadek użycia 2: standaryzacja szablonów umów
Dział prawny wymagał stałej pozycji kodu kreskowego do skanowania. Dzięki wyszukiwaniu i aktualizacji wszystkich PDF‑ów umów w jednym wsadzie zespół uniknął kosztownego ręcznego przepisywania.
Przypadek użycia 3: integracja z systemem inwentaryzacji
Po modernizacji ERP, kody kreskowe produktów musiały być dopasowane do nowej drukarki etykiet. Programowa zmiana rozmiaru i położenia kodu kreskowego zaoszczędziła zarówno czas, jak i koszty materiałów.
Lista kontrolna rozwiązywania problemów
Przed zgłoszeniem się po wsparcie, przejdź przez tę listę:
- Ścieżka pliku jest prawidłowa i plik istnieje.
- Uprawnienia odczytu/zapisu są przyznane dla źródła i docelowego katalogu.
- Wersja GroupDocs.Signature to 23.12 lub nowsza.
- Licencja jest poprawnie skonfigurowana (w przypadku pełnej licencji).
- Katalog wyjściowy istnieje lub jest tworzony programowo.
- Wystarczająca ilość miejsca na dysku dla plików wyjściowych.
- Żaden inny proces nie blokuje pliku źródłowego.
- Obsługa wyjątków jest zaimplementowana, aby przechwycić błędy.
Najczęściej zadawane pytania
P: Czy mogę zaktualizować kod kreskowy Java w jednym dokumencie, gdy występuje wiele kodów?
O: Oczywiście. Przejdź przez List<BarcodeSignature> zwróconą przez wyszukiwanie i wywołaj signature.update() dla każdego, lub przekaż całą listę do jednego wywołania update.
P: Jakie typy kodów kreskowych obsługuje GroupDocs.Signature?
O: Dziesiątki, w tym Code 128, QR Code, EAN‑13, UPC‑A, DataMatrix, PDF417 i inne. Użyj barcodeSignature.getEncodeType(), aby sprawdzić typ.
P: Czy mogę zmienić rzeczywistą treść kodu kreskowego (zakodowane dane)?
O: Tak, poprzez setText(), ale pamiętaj o ponownym wygenerowaniu wizualnego kodu, aby skanery odczytały go poprawnie.
P: Jak obsłużyć dokumenty z kodami kreskowymi na wielu stronach?
O: Każdy BarcodeSignature zawiera getPageNumber(). Filtruj lub przetwarzaj kody na określonych stronach w zależności od potrzeb.
P: Co się dzieje z oryginalnym dokumentem po aktualizacji?
O: Plik źródłowy pozostaje nienaruszony. GroupDocs zapisuje zmiany w podanej ścieżce wyjściowej, zachowując oryginał dla bezpieczeństwa.
P: Czy mogę aktualizować kody kreskowe w PDF‑ach zabezpieczonych hasłem?
O: Tak. Użyj przeciążenia LoadOptions w konstruktorze Signature, aby podać hasło.
P: Jak efektywnie przetwarzać tysiące dokumentów wsadowo?
O: Połącz strumienie równoległe z try‑with‑resources (jak w przykładzie równoległego przetwarzania) i monitoruj zużycie pamięci.
P: Czy to działa z formatami innymi niż PDF?
O: Tak. To samo API działa z Word, Excel, PowerPoint, obrazami i wieloma innymi formatami obsługiwanymi przez GroupDocs.Signature.
Podsumowanie
Masz teraz kompletny, gotowy do produkcji przewodnik, jak create barcode signature java oraz jak aktualizować ich pozycję, rozmiar i inne właściwości. Omówiliśmy inicjalizację, wyszukiwanie, modyfikację, rozwiązywanie problemów oraz optymalizację wydajności zarówno dla pojedynczych dokumentów, jak i masowych wsadów.
Kolejne kroki
- Eksperymentuj z aktualizacją dodatkowych właściwości, takich jak obrót czy przezroczystość, w tym samym przebiegu.
- Opakuj logikę w usługę REST, aby udostępnić aktualizacje kodów kreskowych jako endpoint API.
- Poznaj inne typy podpisów (tekst, obraz, cyfrowy) używając tego samego wzorca, aby w pełni zautomatyzować przepływy pracy z dokumentami.
Zasoby
Ostatnia aktualizacja: 2026-08-19
Testowano z: GroupDocs.Signature 23.12
Autor: GroupDocs