2017-10-24 71 views
0

私はpdf.jsを使用して、Google Scriptを使用してGoogle Docから生成されたPDFを解析します。私は最終的にpdfの特定のページにハイパーリンクのリストを生成する必要があります。pdf.jsでPDFハイパーリンクにアクセス

私はpdf.jsファンクションPDFpage.getTextContentに相当するものが必要ですが、テキスト情報だけでなくハイパーリンク情報も含まれています。ハイパーリンク情報を出力するpdf.js内の関数はすべて開始点ですが、何も見つけられないようです。

私はPDFを表示する必要はありません、ちょうどそこから最小限の情報を抽出します。

ちょうどページのテキストの内容を記録します私の現在のコード、:

function numbersLinks(blob) { 
    PDFJS.getDocument({data: blob}).then(function (PDFdoc) { 
     for (var i=1; i<=PDFdoc.numPages; i++) { 
     PDFdoc.getPage(i).then(function (PDFpage) { 
     var page_number = PDFpage.pageIndex + 1; 
      PDFpage.getTextContent().then(function (text) { 
      for (var j in text.items) { 
       var item = text.items[j] 
       console.log(item) 
      } 
      }) 
     }) 
     } 
    }) 
    } 
+0

PDFのハイパーリンクは注釈(テキストではなく)です - ページ上のオーバーレイ項目は、getAnnotationsを(参照)の代わりに – async5

+0

私はgetAnnotationsを試してみましたが、それはそこには、ページ上のリンクであるにもかかわらず、空の配列が返されました。私はもう少し詳しく見ていきます。 –

+0

注釈がPDFページ間のハイパーリンクであるか、PDF内に実際のハイパーリンクがない場合、getAnnotations()が動作しない可能性があります(PDFリーダーがhttp://またはwww。パターン) – async5

答えて

1

はあなたのために、この便利ですか?

urlのキーを使用して、annotationDataから取得できるURLは、getAnnotations()です。

function numbersLinks(blob) { 
    PDFJS.getDocument({data: blob}).then(function (PDFdoc) { 
    for (var i=1; i<=PDFdoc.numPages; i++) { 
     PDFdoc.getPage(i).then(function (PDFpage) { 
     PDFpage.getAnnotations().then(function (annotationData) { 
      for (var j=0; j<annotationData.length; j++) { 
      console.log(annotationData[j].url); 
      } 
     }) 
     }) 
    } 
    }) 
} 
関連する問題