اندازهی قلم متن
تخمین مدت زمان مطالعهی مطلب:
یک دقیقه
فرض کنید تعداد زیادی فایل PDF را با اسامی نامفهومی داریم. برای نظم بخشیدن و یافتن سادهتر مطالب شاید بهتر باشد این فایلها را بر اساس عنوان اصلی ذخیره شده در فایل، تغییر نام دهیم.
امکان خواندن meta data فوق (البته در صورت وجود)، توسط iTextSharp وجود دارد. در ادامه قطعه کد سادهای را ملاحظه میکنید که در یک پوشه، تمام فایلهای PDF را یافته و بر اساس Title یا Subject آنها، فایل موجود را تغییر نام میدهد:
در قطعه کد فوق علت مراجعه به reader.Info، بر اساس ساختار یک فایل PDF است. در Dictionary به نام Info (تصویر فوق)، در یک سری کلید مشخص، اطلاعاتی مانند تهیه کننده، عنوان و غیره درج میشوند. به این ترتیب با استفاده از شیء PdfReader، فایل را گشوده، این متادیتا را خوانده و سپس بر اساس آن میتوان فایل را تغییر نام داد.
امکان خواندن meta data فوق (البته در صورت وجود)، توسط iTextSharp وجود دارد. در ادامه قطعه کد سادهای را ملاحظه میکنید که در یک پوشه، تمام فایلهای PDF را یافته و بر اساس Title یا Subject آنها، فایل موجود را تغییر نام میدهد:
using System.IO; using iTextSharp.text.pdf; namespace BatchRename { class Program { private static string getTitle(PdfReader reader) { string title; reader.Info.TryGetValue("Title", out title); // Reading PDF file's meta data return string.IsNullOrWhiteSpace(title) ? string.Empty : title.Trim(); } private static string getSubject(PdfReader reader) { string subject; reader.Info.TryGetValue("Subject", out subject); // Reading PDF file's meta data return string.IsNullOrWhiteSpace(subject) ? string.Empty : subject.Trim(); } static void Main(string[] args) { var dir = @"D:\Path"; if (!dir.EndsWith(@"\")) dir = dir + @"\"; foreach (var file in Directory.GetFiles(dir, "*.pdf")) { var reader = new PdfReader(file); var title = getTitle(reader); var subject = getSubject(reader); reader.Close(); string newFile = string.Empty; if (!string.IsNullOrWhiteSpace(title)) { newFile = dir + title + ".pdf"; } else if (!string.IsNullOrWhiteSpace(subject)) { newFile = dir + subject + ".pdf"; } if (!string.IsNullOrWhiteSpace(newFile)) File.Move(file, newFile); } } } }
در قطعه کد فوق علت مراجعه به reader.Info، بر اساس ساختار یک فایل PDF است. در Dictionary به نام Info (تصویر فوق)، در یک سری کلید مشخص، اطلاعاتی مانند تهیه کننده، عنوان و غیره درج میشوند. به این ترتیب با استفاده از شیء PdfReader، فایل را گشوده، این متادیتا را خوانده و سپس بر اساس آن میتوان فایل را تغییر نام داد.