อ่านข้อมูลเมตาจาก PDF โดยใช้ Java

ข้อมูลเมตาภายในไฟล์ PDF ประกอบด้วยรายละเอียดที่สำคัญเกี่ยวกับเอกสาร รวมถึงชื่อเรื่อง ผู้แต่ง วันที่สร้างและแก้ไข คำหลัก และข้อมูลที่เกี่ยวข้องอื่นๆ การแตกข้อมูลเมตานี้สามารถให้ข้อได้เปรียบที่สำคัญสำหรับแอปพลิเคชันต่างๆ ตั้งแต่ระบบการจัดการเอกสารไปจนถึงการวิเคราะห์ข้อมูลและงานอัตโนมัติ บทความนี้จะสำรวจกระบวนการ อ่านข้อมูลเมตาจาก PDF โดยใช้ Java ต่อไปนี้คือรายละเอียดขั้นตอนทีละขั้นตอน พร้อมด้วยโค้ดตัวอย่างเพื่อแสดงวิธี อ่านข้อมูลเมตาของ PDF โดยใช้ Java

ขั้นตอนในการอ่านข้อมูลเมตาจาก PDF โดยใช้ Java

  1. ตั้งค่า IDE ของคุณเพื่อใช้ GroupDocs.Metadata for Java เพื่อแยกข้อมูลเมตาจากไฟล์ PDF
  2. สร้างอินสแตนซ์ของวัตถุ Metadata โดยใช้เส้นทางไฟล์ PDF เป็นอาร์กิวเมนต์สำหรับตัวสร้าง
  3. ตั้งกฎเพื่อตรวจสอบข้อมูลเมตาดาต้าที่รวบรวม
  4. ระบุเงื่อนไขสำหรับการใช้เมธอด Metadata.findProperties
  5. วนซ้ำแต่ละคุณสมบัติทีละรายการ

การแยกข้อมูลเมตาจากไฟล์ PDF โดยใช้ Java ช่วยให้นักพัฒนาได้รับข้อมูลอันมีค่าเกี่ยวกับคุณสมบัติของเอกสาร เช่น ชื่อเรื่อง ผู้เขียน วันที่สร้างและแก้ไข และคำสำคัญ ข้อมูลนี้มีบทบาทสำคัญในระบบการจัดการเอกสาร การวิเคราะห์ข้อมูล และเวิร์กโฟลว์อัตโนมัติ คุณสามารถปฏิบัติตามคำแนะนำที่ให้ไว้บน Windows, macOS หรือ Linux ตราบใดที่ติดตั้ง Java ไว้ ไม่จำเป็นต้องติดตั้งซอฟต์แวร์เพิ่มเติมเพื่อ แยกข้อมูลเมตาของ PDF ใน Java หลังจากกำหนดค่าไลบรารีที่แนะนำและปรับเส้นทางของไฟล์ตามต้องการแล้ว การรวมโค้ดต่อไปนี้เข้ากับโปรเจ็กต์ของคุณควรตรงไปตรงมาโดยไม่มีความยุ่งยากหรือความยุ่งยากใดๆ

รหัสเพื่ออ่านข้อมูลเมตาจาก PDF โดยใช้ Java

import com.groupdocs.metadata.Metadata;
import com.groupdocs.metadata.core.FileFormat;
import com.groupdocs.metadata.core.IReadOnlyList;
import com.groupdocs.metadata.core.MetadataProperty;
import com.groupdocs.metadata.core.MetadataPropertyType;
import com.groupdocs.metadata.licensing.License;
import com.groupdocs.metadata.search.FallsIntoCategorySpecification;
import com.groupdocs.metadata.search.OfTypeSpecification;
import com.groupdocs.metadata.search.Specification;
import com.groupdocs.metadata.tagging.Tags;
import java.util.Calendar;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ReadMetadataFromPDFUsingJava {
public static void main(String[] args) {
// Set License to avoid the limitations of Metadata library
License license = new License();
license.setLicense("GroupDocs.Metadata.lic");
Metadata metadata = new Metadata("input.pdf");
if (metadata.getFileFormat() != FileFormat.Unknown && !metadata.getDocumentInfo().isEncrypted()) {
System.out.println();
// Fetch all metadata properties that fall into a particular category
IReadOnlyList<MetadataProperty> properties = metadata.findProperties(new FallsIntoCategorySpecification(Tags.getContent()));
System.out.println("The metadata properties describing some characteristics of the file content: title, keywords, language, etc.");
for (MetadataProperty property : properties) {
System.out.println(String.format("Property name: %s, Property value: %s", property.getName(), property.getValue()));
}
// Fetch all properties having a specific type and value
int year = Calendar.getInstance().get(Calendar.YEAR);
properties = metadata.findProperties(new OfTypeSpecification(MetadataPropertyType.DateTime).and(new ReadMetadataFromPDFUsingJava().new YearMatchSpecification(year)));
System.out.println("All datetime properties with the year value equal to the current year");
for (MetadataProperty property : properties) {
System.out.println(String.format("Property name: %s, Property value: %s", property.getName(), property.getValue()));
}
// Fetch all properties whose names match the specified regex
Pattern pattern = Pattern.compile("^author|company|(.+date.*)$", Pattern.CASE_INSENSITIVE);
properties = metadata.findProperties(new ReadMetadataFromPDFUsingJava().new RegexSpecification(pattern));
System.out.println(String.format("All properties whose names match the following regex: %s", pattern.pattern()));
for (MetadataProperty property : properties) {
System.out.println(String.format("Property name: %s, Property value: %s", property.getName(), property.getValue()));
}
}
}
// Define your own specifications to filter metadata properties
public class YearMatchSpecification extends Specification {
public YearMatchSpecification(int year) {
setValue(year);
}
public final int getValue() {
return auto_Value;
}
private void setValue(int value) {
auto_Value = value;
}
private int auto_Value;
public boolean isSatisfiedBy(MetadataProperty candidate) {
Date date = candidate.getValue().toClass(Date.class);
if (date != null) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return getValue() == calendar.get(Calendar.YEAR);
}
return false;
}
}
public class RegexSpecification extends Specification {
private Pattern pattern;
public RegexSpecification(Pattern pattern) {
this.pattern = pattern;
}
@Override
public boolean isSatisfiedBy(MetadataProperty metadataProperty) {
Matcher matcher = pattern.matcher(metadataProperty.getName());
return matcher.find();
}
}
}

โดยสรุป บทความนี้ได้ให้คำแนะนำโดยละเอียดเกี่ยวกับวิธี รับข้อมูลเมตาของ PDF ใน Java ด้วยไลบรารี Metadata นักพัฒนาสามารถดึงข้อมูลสำคัญได้อย่างมีประสิทธิภาพ เช่น ชื่อเอกสาร รายละเอียดผู้เขียน วันที่สร้างและแก้ไข และคำสำคัญจากเอกสาร PDF การเรียนรู้เทคนิคการแยกข้อมูลเมตาใน Java ช่วยให้นักพัฒนาสามารถสร้างแอปพลิเคชันที่มีประสิทธิภาพสำหรับการจัดการเอกสาร การวิเคราะห์ข้อมูล และระบบอัตโนมัติ เราขอแนะนำให้คุณทดลองใช้ไฟล์ PDF ต่างๆ และสำรวจคุณสมบัติข้อมูลเมตาเพิ่มเติม เพื่อปรับปรุงความสามารถในการแยกข้อมูลเมตาในแอปพลิเคชัน Java เพิ่มเติม

ในการสนทนาก่อนหน้านี้ เราได้นำเสนอบทช่วยสอนโดยละเอียดเกี่ยวกับการแยกข้อมูลเมตาจากไฟล์ PPTX โดยใช้ Java เพื่อความเข้าใจที่ลึกซึ้งยิ่งขึ้นเกี่ยวกับเรื่องนี้ เราขอแนะนำให้อ่านคำแนะนำที่ครอบคลุมเกี่ยวกับวิธี อ่านข้อมูลเมตาจาก PPTX โดยใช้ Java

 ไทย