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/setHeight lub zmodyfikuj współrzędne Left/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 / setTop przesuwają kod kreskowy (współrzędne mierzone od lewego górnego rogu).
  • update zapisuje nowy plik; oryginał pozostaje niezmieniony.
  • Umieść wywołanie w bloku try‑catch, aby obsłużyć ewentualny GroupDocsSignatureException.

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

Powiązane samouczki