2
我有一個非常大的PDF目錄,其中有超過50K的零件號。想編寫一個過程將零件號碼變成可點擊的鏈接。一直在用Acrobat,iTextSharp,PDFSharp和其他一些東西偷看,但似乎無法看到類似的東西是否曾經做過?PDF將零件號碼轉換爲鏈接
我需要手動更新每個鏈接,還是有一些自動執行此過程的希望?
謝謝!
我有一個非常大的PDF目錄,其中有超過50K的零件號。想編寫一個過程將零件號碼變成可點擊的鏈接。一直在用Acrobat,iTextSharp,PDFSharp和其他一些東西偷看,但似乎無法看到類似的東西是否曾經做過?PDF將零件號碼轉換爲鏈接
我需要手動更新每個鏈接,還是有一些自動執行此過程的希望?
謝謝!
使用Docotic.Pdf library可以輕鬆完成此任務。
該庫可以檢索頁面中的所有單詞及其邊界矩形。此外,該庫可以在PDF頁面的指定位置創建超鏈接。
以下是您的任務的簡短示例。以下代碼打開指定文件,查找以L開頭的所有單詞並將這些單詞「轉」爲鏈接。
public static void makeWordsHyperlinks(string file, string outputFile)
{
using (PdfDocument pdf = new PdfDocument(file))
{
foreach (PdfPage page in pdf.Pages)
{
PdfCollection<PdfTextData> words = page.GetWords();
foreach (PdfTextData word in words)
{
// let's take anything starting from L
// you can discriminate words as you like, of course
if (word.Text.StartsWith("L", StringComparison.InvariantCultureIgnoreCase))
{
// build lookup query. you can use any url, of course
string lookupUrl = string.Format(@"https://www.google.ru/#q={0}", word.Text);
// let's draw rectangle around word.
// just to make links easier to find
page.Canvas.DrawRectangle(word.Bounds, PdfDrawMode.Stroke);
page.AddHyperlink(word.Bounds, new Uri(lookupUrl));
}
}
}
pdf.Save(outputFile);
}
}
我假設你的零件編號爲類似XXX-YYYYY。如果你的零件號由幾個單詞組成,那麼任務有點困難。你將需要結合單詞和他們的邊界矩形。
聲明:我爲圖書館的供應商工作。