wifrstfasnriov
@wifrstfasnriov (KA TO)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

.NET PDFのハイパーリンクを検索したい

解決したいこと

Visual StudioでWindowsフォームアプリを作っています。
PDFを読み込んで、そのPDFが持つハイパーリンク枠の数を調べる(一覧化もしたい)機能を作りたいのですが、どのような方法を使えばよいでしょうか。

やりたいことのイメージ

  1. ユーザーがローカルのPDFをパスで指定
  2. 指定されたPDFのハイパーリンク情報を調べて画面に出力

自分で試したこと

とりあえずGoogle検索してみたところQuestPDFなるPDFを生成するライブラリを見つけました。これはこれですごいなと思いそのうち使ってみたいと思ったのですが、今やりたいのはPDFの生成でなくすでにあるPDFの情報を読み取ることです。
惜しいのですが目当てのものは見つけることができませんでした。
私のニーズにあったライブラリ、あるいはライブラリの探し方はこうやるんだ、みたいなことを教えていただけるとありがたいです。

0

2Answer

PDFは文字を画像で保持しているケースがあります。
その場合はOCRが必要になり難易度は跳ね上がりますのでご注意下さい。
PDFをAcrobatなどで開いてURLがすべてコピペできるようであれば画像ではありません。

以下にライブラリなどのまとめたサイトがありましたのでご参考にしてはいかがでしょうか?
https://wonwon-eater.com/dotnet-core-pdf/

0Like

Comments

  1. @wifrstfasnriov

    Questioner

    ご回答ありがとうございます。OCRをしたいわけではないのでそこまで難しいことではないと思っていましたが、ベストプラクティスと言える方法があるほど一般的なものでもないらしいということがよくわかりました。それだけでも収穫です。あとはいろいろ調べてみたいと思います。サイトの紹介もありがとうございました。

PDFのリンクは、リンク注釈・リンクアノテーションと呼ばれるものらしいです。(自分も別に詳しくないのでよく分かってません)

Foxit PDF SDKで近い事やってるサンプル見つかったけど、多分有償っぽいですね。日本法人のサイトもあったけど、見積は問い合わせてくれってなってるから価格は判りません。

Programmatically find and replace URL links in PDF files

注釈またはリンク注釈を列挙出来る機能があれば、多分他のライブラリでも出来るんじゃないですかね。(知らないけど)
SDKやライブラリ片っ端から漁って、リファレンス等を読んで調べてみてください。一般的ではないマイナーな機能を調べるのは根気勝負です。

0Like

Comments

  1. @wifrstfasnriov

    Questioner

    ご回答ありがとうございます。
    まさにおっしゃる通りリンクアノテーションのことです。
    いろいろな言葉で検索していると意外と少しずつ情報が集まってきて、根気勝負という表現が本当に的確なんだなあと感じています。(Acrobat SDKではPDLinkAnnotというクラス?で定義されているようで、このあたりから紐解けないかなと調べています。)
    紹介いただいたリンクも参考にもう少し調べてみようと思います。

Your answer might help someone💌