Edytuj metadane plików PDF przy użyciu języka Java

Metadane dokumentu zawierają podstawowe informacje o dokumencie w postaci właściwości, takich jak tytuł, autor, temat, słowa kluczowe itp. Extensible Metadata Platform (XMP) to oparty na języku XML standard przechowywania metadanych dokumentu jako klucz/wartość para. Możemy programowo dodawać, edytować lub czytać informacje o dokumencie i metadane XMP dokumentu PDF. W tym artykule dowiemy się, jak edytować właściwości i metadane pliku PDF za pomocą języka Java.

W tym artykule zostaną omówione następujące tematy:

Interfejs API Java do edycji właściwości i metadanych plików PDF

Aby edytować właściwości i metadane PDF, będziemy używać Aspose.PDF for Java API. Pozwala nam generować, modyfikować, konwertować, renderować, zabezpieczać i drukować obsługiwane dokumenty bez użycia programu Adobe Acrobat. Pobierz plik JAR interfejsu API lub dodaj następującą konfigurację pom.xml w aplikacji Java opartej na Maven.

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>22.3</version>
</dependency>

Edytuj właściwości pliku PDF przy użyciu języka Java

Informacje o dokumencie PDF możemy edytować za pomocą klasy PdfFileInfo, która reprezentuje metainformacje o dokumencie PDF. Możemy ustawić różne predefiniowane właściwości, wykonując poniższe kroki:

  1. Najpierw załaduj dokument PDF przy użyciu klasy PdfFileInfo.
  2. Ustaw różne właściwości, takie jak autor, twórca, słowa kluczowe, temat, tytuł itp.
  3. Na koniec zapisz plik PDF, korzystając z metody saveNewInfo(), podając jako argument ścieżkę pliku wyjściowego.

Poniższy przykładowy kod pokazuje, jak edytować metawłaściwości pliku PDF przy użyciu języka Java.

// Ten przykład kodu demonstruje, jak ustawić podstawowe informacje w dokumencie PDF.
// Dokument open source
PdfFileInfo fileInfo = new PdfFileInfo("D:\\Files\\PDF\\sample.pdf");

// Ustaw informacje PDF
fileInfo.setAuthor("Aspose");
fileInfo.setTitle("Editing Metadata");
fileInfo.setKeywords("Aspose.Pdf, DOM, API");
fileInfo.setSubject("PDF Information");
fileInfo.setCreator("Aspose");

// Zapisz zaktualizowany plik
fileInfo.saveNewInfo("D:\\Files\\PDF\\Updated_Info_output.pdf");
Edytuj meta właściwości pliku PDF w Javie.

Edytuj meta właściwości pliku PDF w Javie.

Przeczytaj właściwości PDF przy użyciu Java

Podstawowe informacje o dokumencie PDF możemy odczytać, wykonując poniższe czynności:

  1. Najpierw załaduj dokument PDF przy użyciu klasy PdfFileInfo.
  2. Na koniec pokaż informacje o dokumencie, odczytując wartości metawłaściwości.

Poniższy przykładowy kod pokazuje, jak uzyskać metawłaściwości pliku PDF przy użyciu języka Java.

// Ten przykład kodu demonstruje, jak uzyskać podstawowe informacje z dokumentu PDF.
// Otwórz dokument
PdfFileInfo fileInfo = new PdfFileInfo("D:\\Files\\PDF\\Updated_Info_output.pdf");

// Uzyskaj informacje w formacie PDF
System.out.println("Subject :" + fileInfo.getSubject());
System.out.println("Title :" + fileInfo.getTitle());
System.out.println("Keywords :" + fileInfo.getKeywords());
System.out.println("Creator :" + fileInfo.getCreator());
System.out.println("Creation Date :" + fileInfo.getCreationDate());
System.out.println("Modification Date :" + fileInfo.getModDate());

// Sprawdź, czy jest to prawidłowy plik PDF i czy jest on również zaszyfrowany
System.out.println("Is Valid PDF :" + fileInfo.isPdfFile());
// w przypadku, gdy plik jest zaszyfrowany, należy podać hasło otwierające plik
// jako drugi argument konstruktora PdfFileInfo
System.out.println("Is Encrypted :" + fileInfo.isEncrypted());
Subject :PDF Information
Title :Editing Metadata
Keywords :Aspose.Pdf, DOM, API
Creator :Aspose
Creation Date :D:20170612160123-04'00'
Modification Date :D:20220405214422+05'00'
Is Valid PDF :true
Is Encrypted :false

Uzyskaj metadane XMP pliku PDF w Javie

Metadane XMP dokumentu PDF możemy odczytać, wykonując poniższe kroki:

  1. Najpierw załaduj dokument PDF przy użyciu klasy Document.
  2. Na koniec odczytaj metadane za pomocą metody getItem() klasy Metadata i wyodrębnij informacje.

Poniższy przykładowy kod pokazuje, jak uzyskać metadane XMP z pliku PDF przy użyciu języka Java.

// Ten przykład kodu demonstruje, jak uzyskać metadane XMP z dokumentu PDF.
// Otwórz dokument
Document pdfDocument = new Document("D:\\Files\\PDF\\SetXMPMetadata.pdf");

// Zdobądź właściwości
System.out.println("xmp:CreateDate: " + pdfDocument.getMetadata().get_Item("xmp:CreateDate"));
System.out.println("xmp:Nickname: " + pdfDocument.getMetadata().get_Item("xmp:Nickname"));
System.out.println("xmp:CustomProperty: " + pdfDocument.getMetadata().get_Item("xmp:CustomProperty"));
xmp:CreateDate : 2022-04-05T10:05:24.4
xmp:Nickname : Nickname
xmp:CustomProperty : Custom Value

Ustaw metadane XMP w pliku PDF w Javie

Możemy ustawić metadane XMP w pliku PDF, wykonując kroki podane poniżej:

  1. Najpierw załaduj dokument PDF przy użyciu klasy Document.
  2. Następnie ustaw wartości metadanych za pomocą metody setItem() klasy Metadata.
  3. Na koniec zapisz plik PDF, korzystając z metody Document.save(), podając jako argument ścieżkę pliku wyjściowego.

Poniższy przykładowy kod pokazuje, jak ustawić metadane XMP pliku PDF przy użyciu języka Java.

// Ten przykład kodu demonstruje, jak ustawić metadane XMP dokumentu PDF.
// Otwórz dokument
Document pdfDocument = new Document("D:\\Files\\PDF\\sample.pdf");

// Ustaw właściwości
pdfDocument.getMetadata().set_Item("xmp:CreateDate", new XmpValue(new java.util.Date()));
pdfDocument.getMetadata().set_Item("xmp:Nickname", new XmpValue("Nickname"));
pdfDocument.getMetadata().set_Item("xmp:CustomProperty", new XmpValue("Custom Value"));

// Zapisz dokument
pdfDocument.save("D:\\Files\\PDF\\SetXMPMetadata.pdf");

Dostosuj przestrzeń nazw metadanych XMP w pliku PDF

Możemy ustawić dostosowany URI przestrzeni nazw zamiast zdefiniowanych specyfikacji XMP w pliku PDF. W tym celu API udostępnia metodę registerNamespaceUri w klasie Metadata. Możemy utworzyć nową przestrzeń nazw metadanych z prefiksem, wykonując kroki podane poniżej:

  1. Najpierw załaduj dokument PDF przy użyciu klasy Document.
  2. Następnie wywołaj metodę RegisterNamespaceUri() z prefiksem i identyfikatorem URI przestrzeni nazw jako argumentami.
  3. Następnie ustaw wartości metadanych za pomocą metody setItem().
  4. Na koniec zapisz plik PDF za pomocą metody Document.Save(), podając jako argument ścieżkę pliku wyjściowego.

Poniższy przykładowy kod pokazuje, jak ustawić niestandardową przestrzeń nazw metadanych w pliku PDF przy użyciu języka Java.

// Ten przykład kodu demonstruje, jak ustawić dostosowane metadane XMP dokumentu PDF.
// Otwórz dokument
Document pdfDocument = new Document("D:\\Files\\PDF\\sample.pdf");

// Ustaw dostosowane właściwości
pdfDocument.getMetadata().registerNamespaceUri("myown", "http:// myown.xyz.com/xap/1.0/");
pdfDocument.getMetadata().set_Item("myown:ModifyDate", new XmpValue(new java.util.Date()));
pdfDocument.getMetadata().set_Item("myown:CreateDate", new XmpValue(new java.util.Date()));
pdfDocument.getMetadata().set_Item("myown:DeveloperName", new XmpValue("Developer Name"));
pdfDocument.getMetadata().set_Item("myown:MyProperty", new XmpValue("My Custom Value"));

// Zapisz dokument
pdfDocument.save("D:\\Files\\PDF\\CustomizedXMPMetadata.pdf");

Możemy odczytać dostosowane właściwości metadanych XMP, wykonując kroki wymienione wcześniej.

NamespaceUri: http:// myown.xyz.com/xap/1.0/
myown:ModifyDate: 2022-04-05T10:18:45.9
myown:CreateDate: 2022-04-05T10:18:45.9
myown:DeveloperName: Developer Name
myown:MyProperty: My Custom Value

Uzyskaj bezpłatną licencję API

Możesz wypróbować interfejs API bez ograniczeń ewaluacyjnych, prosząc o bezpłatną licencję tymczasową.

Wniosek

W tym artykule dowiedzieliśmy się, jak:

  • dodawać/edytować podstawowe informacje o dokumencie PDF przy użyciu języka Java;
  • ustaw/pobierz metadane XMP w pliku PDF przy użyciu Java;
  • ustaw niestandardowy identyfikator URI przestrzeni nazw metadanych z prefiksem.

Poza tym możesz dowiedzieć się więcej o Aspose.PDF dla API Java, korzystając z dokumentacji. W przypadku jakichkolwiek niejasności prosimy o kontakt na forum.

Zobacz też