Przejdź do treści stopki
KORZYSTANIE Z IRONPDF FOR JAVA

Jak dodać podpisy cyfrowe do PDF w Java

W tym artykule dowiesz się, jak dodać podpis cyfrowy do pliku PDF za pomocą IronPDF w programie napisanym w języku Java.

IronPDF — biblioteka Java do obsługi plików PDF

IronPDF Java PDF Library Overview to biblioteka Java, która pozwala programistom tworzyć nowe dokumenty PDF od podstaw poprzez konwersję ciągu znaków HTML do formatu PDF, konwersję pliku HTML do formatu PDF, konwersję pliku WORD do formatu PDF lub z adresu URL. Ułatwia manipulowanie plikami PDF poprzez dodawanie lub usuwanie z nich treści. Zapewnia opcje zabezpieczeń i podpisu cyfrowego dla dokumentów PDF wraz z podpisem cyfrowym.

IronPDF nie wymaga żadnych innych bibliotek stron trzecich do wykonywania zadań związanych z plikami PDF. Zapewnia również możliwość konwersji między różnymi formatami plików. Zapewnia obsługę wielu platform i jest specjalnie zaprojektowany dla języków Java, Scala i Kotlin.

Kroki dodawania podpisów cyfrowych do dokumentu PDF w Javie

Wymagania wstępne

Aby podpisać cyfrowo dokumenty PDF, wymagane są następujące warunki wstępne:

  • Dowolne środowisko IDE dla języka Java (NetBeans, Eclipse, IntelliJ) zainstalowane — w tym artykule zostanie użyte IntelliJ. Zestaw Java Development Kit można pobrać osobno ze strony Oracle Java SE Downloads.
  • Projekt Maven Java do automatyzacji — pomoże to w pobieraniu i zarządzaniu zależnościami w programie Java. Maven można pobrać ze strony pobierania Apache Maven.
  • Pobranie i instalacja biblioteki IronPDF — aby pobrać i zainstalować IronPDF, należy dołączyć artefakt zależności Maven. Możesz dodać poniższy fragment kodu w tagu zależności pliku pom.xml:
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2023.2.0</version>
</dependency>
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2023.2.0</version>
</dependency>
XML
  • Kolejną wymaganą zależnością jest Slf4j-simple. Jest to opcjonalne i można to dodać, używając następującej zależności w pliku pom.xml:

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>2.0.5</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>2.0.5</version>
    </dependency>
    XML

Jak dodawać podpisy cyfrowe do plików PDF w Javie, rysunek 1: plik pom.xml Plik pom.xml

Pakiety Java do importu IronPDF

W pliku głównym wymagane są następujące importy. Umożliwiają one korzystanie z funkcji IronPDF w celu dodania podpisu cyfrowego do dokumentu PDF:

import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.signature.Signature;
import com.ironsoftware.ironpdf.signature.SignatureManager;
import java.io.IOException;
import java.nio.file.Paths;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.signature.Signature;
import com.ironsoftware.ironpdf.signature.SignatureManager;
import java.io.IOException;
import java.nio.file.Paths;
JAVA

Teraz wszystko jest gotowe do dodania podpisu cyfrowego do dokumentów PDF w Javie przy użyciu IronPDF.

Utwórz plik PDF lub otwórz istniejący plik PDF

Aby dowiedzieć się, jak podpisywać cyfrowo pliki PDF, należy albo utworzyć dokument PDF od podstaw, albo otworzyć istniejący dokument PDF. W tym artykule zostanie utworzony nowy dokument PDF do podpisania przy użyciu renderHtmlAsPdf Method z PdfDocument Class. Kod wygląda następująco:

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");
JAVA

Dokument PDF został utworzony, ale nie został jeszcze zapisany. Kolejnym krokiem jest więc utworzenie podpisu cyfrowego, a następnie dodanie go do tego dokumentu PDF i wreszcie zapisanie go.

Utwórz podpis cyfrowy

Będziesz musiał utworzyć certyfikat podpisu cyfrowego za pomocą programu Adobe Reader, który zostanie wykorzystany w kodzie Java do cyfrowego podpisywania dokumentów PDF przy użyciu tych danych. Możesz zapoznać się z Artykułem Jak utworzyć podpis cyfrowy w programie Adobe Reader.

Otwórz program Adobe Reader i kliknij opcję Edycja > Preferencje. Następnie kliknij na "Podpisy" i wybierz opcję "Tożsamości i certyfikaty zaufane".

Jak dodawać podpisy cyfrowe do plików PDF w Javie, rysunek 2: Preferencje projektu Preferencje projektu

Dodaj następujące pole podpisu, aby utworzyć plik .pfx lub .p12.

Jak dodawać podpisy cyfrowe do plików PDF w Javie, rysunek 3: Okno dialogowe Dodaj identyfikator cyfrowy Dodaj okno dialogowe Digital ID

Poniższy przykład kodu utworzy nowy podpis w kodzie Java przy użyciu pliku certyfikatu .pfx dla systemu Windows i pliku .p12 dla systemu Mac wraz z kluczem prywatnym (hasłem):

Signature signature = new Signature("Iron.pfx", "123456");
Signature signature = new Signature("Iron.pfx", "123456");
JAVA

Podpisywanie pliku PDF podpisem cyfrowym

IronPDF pomaga w dodaniu certyfikatu podpisu przy użyciu klasy SignatureManager. [getSignature Method](/java/object-reference/api/com/ironsoftware/ironpdf/PdfDocument.html#getSignature()) pomaga uzyskać poprzedni podpis dokumentu PDF, a następnie można dodać nowy podpis za pomocą SignPdfWithSignature Method z plikiem podpisu jako argumentem. Kod wygląda następująco:

SignatureManager signatureManager = pdf.getSignature();
signatureManager.SignPdfWithSignature(signature);
SignatureManager signatureManager = pdf.getSignature();
signatureManager.SignPdfWithSignature(signature);
JAVA

Zapisz plik podpisu PDF

Na koniec zapiszmy plik PDF; w przeciwnym razie plik PDF nie zostanie podpisany przy użyciu [saveAs Method](/java/object-reference/api/com/ironsoftware/ironpdf/PdfDocument.html#saveAs(java.lang.String) klasy PdfDocument. Kod jest prosty i wygląda następująco:

pdf.saveAs("signed.pdf");
pdf.saveAs("signed.pdf");
JAVA

Po pomyślnej kompilacji i wykonaniu kodu generowany jest plik PDF z podpisem cyfrowym.

Jak dodawać podpisy cyfrowe do plików PDF w Javie, rysunek 4: Plik PDF na wyjściu Plik PDF wynikowy

IronPDF oferuje również inne opcje podpisywania, które są opcjonalne i mogą być również wykorzystywane do podpisów cyfrowych. Obejmuje to obrazy podpisów w formie pisma odręcznego, obrazów tekstu generowanych komputerowo lub obrazów cyfrowych. Poniższy przykład kodu pomoże Ci dodać dodatkowe opcje zabezpieczeń dla podpisu cyfrowego:

signature.setSigningContact("support@ironsoftware.com");
signature.setSigningLocation("Chicago, USA");
signature.setSigningReason("To show how to sign a PDF");
BufferedImage signatureImage = ImageIO.read(new File("handwriting.png"));
WritableRaster raster = signatureImage.getRaster();
DataBufferByte data = (DataBufferByte) raster.getDataBuffer();
signature.setSignatureImage(data.getData());
signature.setSigningContact("support@ironsoftware.com");
signature.setSigningLocation("Chicago, USA");
signature.setSigningReason("To show how to sign a PDF");
BufferedImage signatureImage = ImageIO.read(new File("handwriting.png"));
WritableRaster raster = signatureImage.getRaster();
DataBufferByte data = (DataBufferByte) raster.getDataBuffer();
signature.setSignatureImage(data.getData());
JAVA

Pełny kod wygląda następująco:

import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.signature.Signature;
import com.ironsoftware.ironpdf.signature.SignatureManager;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
import java.awt.image.WritableRaster;
import java.io.File;
import java.io.IOException;

public class DigitalSignatureExample {
    public static void main(String[] args) throws IOException {

        // Step 1. Create a PDF File Doc
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");

        // Step 2. Create a Signature.
        Signature signature = new Signature("Iron.pfx", "123456");

        // Step 3. Sign the PDF with the PdfSignature.
        SignatureManager signatureManager = pdf.getSignature();
        signatureManager.SignPdfWithSignature(signature);

        // Step 4. The PDF is not signed until saved to file, stream, or byte array.
        pdf.saveAs("signed.pdf");
    }
}
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.signature.Signature;
import com.ironsoftware.ironpdf.signature.SignatureManager;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
import java.awt.image.WritableRaster;
import java.io.File;
import java.io.IOException;

public class DigitalSignatureExample {
    public static void main(String[] args) throws IOException {

        // Step 1. Create a PDF File Doc
        PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");

        // Step 2. Create a Signature.
        Signature signature = new Signature("Iron.pfx", "123456");

        // Step 3. Sign the PDF with the PdfSignature.
        SignatureManager signatureManager = pdf.getSignature();
        signatureManager.SignPdfWithSignature(signature);

        // Step 4. The PDF is not signed until saved to file, stream, or byte array.
        pdf.saveAs("signed.pdf");
    }
}
JAVA

Więcej informacji na temat podpisu cyfrowego można znaleźć w przykładowym kodzie dotyczącym podpisów w plikach PDF. Jeśli chcesz zwiększyć bezpieczeństwo, a nawet edytować metadane, zapoznaj się z przykładem kodu dotyczącym bezpieczeństwa i metadanych.

Wnioski

W tym artykule wyjaśniono krok po kroku, jak dodawać podpisy cyfrowe do dokumentów PDF przy użyciu IronPDF for Java.

W pierwszej części artykułu omówiono komponenty niezbędne do pracy z plikami PDF w Javie przy użyciu IronPDF. Następnie utworzono prosty dokument PDF przy użyciu ciągu znaków HTML. Plik certyfikatu został utworzony w programie Adobe Reader, który posłużył do podpisania oryginalnego dokumentu PDF. IronPDF udostępnia klasy Signature i SignatureManager, które pomagają użytkownikom dodawać certyfikaty i podpisywać pliki PDF za pomocą pola podpisu.

IronPDF ułatwia programistom wykonywanie zadań związanych z plikami PDF w łatwy i szybki sposób. Zapewnia dokładne wyniki w postaci plików PDF o idealnej rozdzielczości. W przypadku wszechstronnego i powszechnie używanego języka programowania, takiego jak Java, IronPDF doskonale nadaje się do pracy z dokumentami PDF, ponieważ jest równie wszechstronny i obsługuje niemal wszystkie operacje związane z plikami PDF. Ponadto opiera się on na sprawdzonych już możliwościach platformy .NET.

IronPDF zapewnia również łatwą konwersję różnych formatów plików przy użyciu szybkiego IronPDFEngine zaprojektowanego specjalnie dla Javy. Biblioteka IronPDF umożliwia wyodrębnianie lub dodawanie tekstu, ładowanie i wyodrębnianie obrazów, dodawanie nagłówków i stopek do plików PDF, dodawanie adnotacji, renderowanie wykresów i diagramów do plików PDF, pracę z formularzami PDF i wiele więcej.

Szczegółowe informacje na temat korzystania z IronPDF można znaleźć na stronach z przykładami kodu Java PDF.

IronPDF jest bezpłatny do użytku indywidualnego i oferuje bezpłatną wersję próbną bez znaku wodnego do generowania dokumentów PDF. Można uzyskać licencję na użytkowanie komercyjne, a użytkownicy mogą uzyskać więcej informacji na temat licencji na tej stronie zawierającej szczegółowe informacje o licencjach.

Często Zadawane Pytania

Jak dodać podpis cyfrowy do pliku PDF w Javie?

Możesz dodać podpis cyfrowy do pliku PDF w Javie za pomocą IronPDF, tworząc lub otwierając dokument PDF, generując podpis cyfrowy za pomocą pliku certyfikatu i używając klasy `SignatureManager` IronPDF do zastosowania podpisu. Na koniec zapisz podpisany dokument PDF.

Jakie kroki należy wykonać, aby przekonwertować HTML na PDF przy użyciu biblioteki Java?

Aby przekonwertować HTML na PDF przy użyciu IronPDF w Javie, należy skorzystać z metody PdfDocument.renderHtmlAsPdf. Pozwala to na bezpośrednią konwersję ciągów HTML na dokument PDF, który następnie można zapisać za pomocą metody PdfDocument.saveAs.

Jakie są wymagania wstępne dotyczące korzystania z IronPDF w projekcie Java?

Aby używać IronPDF w projekcie Java, potrzebujesz środowiska IDE dla Javy, takiego jak IntelliJ, projektu Maven do zarządzania zależnościami oraz biblioteki IronPDF. Dodatkowo, do dodawania podpisów cyfrowych wymagany jest certyfikat podpisu cyfrowego.

Czy IronPDF for Java może konwertować inne formaty plików do PDF?

Tak, oprócz HTML, IronPDF może konwertować różne inne formaty plików, takie jak dokumenty WORD i adresy URL, do formatu PDF w aplikacji Java.

Czy IronPDF wymaga bibliotek innych firm do obsługi funkcji PDF?

Nie, IronPDF nie wymaga żadnych bibliotek stron trzecich do obsługi podstawowych funkcji PDF, co czyni go samodzielnym rozwiązaniem do tworzenia i edycji plików PDF w Javie.

Jak wygenerować certyfikat podpisu cyfrowego do podpisywania plików PDF?

Certyfikat podpisu cyfrowego można utworzyć za pomocą programu Adobe Reader, przechodząc do menu Edycja > Preferencje > Podpisy i zarządzając tożsamościami oraz certyfikatami zaufanymi.

Która klasa w IronPDF służy do zarządzania podpisami cyfrowymi w Javie?

Klasa SignatureManager w IronPDF służy do zarządzania podpisami cyfrowymi w Javie. Umożliwia dodawanie nowych podpisów i pobieranie istniejących z dokumentu PDF.

Jakie dodatkowe opcje są dostępne w zakresie podpisu cyfrowego w IronPDF w Javie?

IronPDF w Javie oferuje opcje dodawania obrazów podpisów, określania osoby podpisującej, lokalizacji i powodu, a także dodawania pisma ręcznego i obrazów cyfrowych do podpisu cyfrowego.

Czy istnieje darmowa wersja IronPDF for Java?

IronPDF oferuje bezpłatną wersję próbną do użytku indywidualnego, z której można korzystać bez znaku wodnego. Dostępne są opcje licencyjne do użytku komercyjnego.

Jakie są zaawansowane funkcje IronPDF for Java?

IronPDF for Java zawiera takie funkcje, jak wyodrębnianie tekstu i obrazów, dodawanie nagłówków i stopek, renderowanie wykresów i diagramów oraz obsługa formularzy PDF.

Darrius Serrant
Full Stack Software Engineer (WebOps)

Darrius Serrant posiada tytuł licencjata z informatyki z Uniwersytetu Miami i pracuje jako Full Stack WebOps Marketing Engineer w Iron Software. Już od młodych lat zainteresował się kodowaniem, postrzegając informatykę jako zarówno tajemniczą, jak i dostępną, co czyni ją doskonałym medium dla kreatywności ...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie