【问题标题】:PDF Converting Part Numbers to LinksPDF 将零件编号转换为链接
【发布时间】:2012-08-03 20:19:42
【问题描述】:

我有一个非常大的 PDF 目录,其中包含超过 50K 的部件号。想编写一个将零件编号转换为可点击链接的过程。一直在使用 Acrobat、iTextSharp、PDFSharp 和其他一些工具,但似乎无法看到以前是否做过类似的事情?

我是否需要手动更新每个链接,或者是否有希望将这个过程自动化?

谢谢!

【问题讨论】:

    标签: c# pdf adobe ghostscript


    【解决方案1】:

    使用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。如果您的零件编号由几个单词组成,那么任务会有点困难。您需要组合单词及其边界矩形。

    免责声明:我为图书馆的供应商工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-21
      • 1970-01-01
      相关资源
      最近更新 更多