ข้อมูลเมตาภายในไฟล์ PDF ประกอบด้วยรายละเอียดที่สำคัญเกี่ยวกับเอกสาร รวมถึงชื่อเรื่อง ผู้แต่ง วันที่สร้างและแก้ไข คำหลัก และข้อมูลที่เกี่ยวข้องอื่นๆ การแตกข้อมูลเมตานี้สามารถให้ข้อได้เปรียบที่สำคัญสำหรับแอปพลิเคชันต่างๆ ตั้งแต่ระบบการจัดการเอกสารไปจนถึงการวิเคราะห์ข้อมูลและงานอัตโนมัติ บทความนี้จะสำรวจกระบวนการ อ่านข้อมูลเมตาจาก PDF โดยใช้ Java ต่อไปนี้คือรายละเอียดขั้นตอนทีละขั้นตอน พร้อมด้วยโค้ดตัวอย่างเพื่อแสดงวิธี อ่านข้อมูลเมตาของ PDF โดยใช้ Java
ขั้นตอนในการอ่านข้อมูลเมตาจาก PDF โดยใช้ Java
- ตั้งค่า IDE ของคุณเพื่อใช้ GroupDocs.Metadata for Java เพื่อแยกข้อมูลเมตาจากไฟล์ PDF
- สร้างอินสแตนซ์ของวัตถุ Metadata โดยใช้เส้นทางไฟล์ PDF เป็นอาร์กิวเมนต์สำหรับตัวสร้าง
- ตั้งกฎเพื่อตรวจสอบข้อมูลเมตาดาต้าที่รวบรวม
- ระบุเงื่อนไขสำหรับการใช้เมธอด Metadata.findProperties
- วนซ้ำแต่ละคุณสมบัติทีละรายการ
การแยกข้อมูลเมตาจากไฟล์ 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