目的
.NET(C#)でバックエンドを開発。その中でPDFを画像化ための記事です
PDFを読み込み画像化、線などを描画し保存するには、ライブラリの選定が必要です。
本記事ではサーバ動作に必須なMemoryStreamで扱えるように試しています。
一見Windows上で動作しているプログラムでもDockerのコンテナ上で動くとは限りません。
特にSystem.Drawingはコンテナ(asp.net core)では動作ないためです。
上記の制限をクリアするためライブラリを探した結果
- PDFtoImage
- SkiaSharp
を使うことで動作します。
dockerでの動作
build
Dockerfileがあるディレクトリで下記のコマンドでビルドしてください
docker build -t pdfdraw .
run
docker run --rm -it -e PDF_FILE_NAME=RAG.pdf -e OUTPUT_DIR=/output -v {ホスト側PDFがあるフォルダ名}:/pdf -v {ホスト側PDFを出力するフォルダ名}:/output pdfdraw
例:
docker run --rm -it -e PDF_FILE_NAME=RAG.pdf -e OUTPUT_DIR=/output -v c:\pdf:/pdf -v c:\output:/output pdfdraw
流れ
終わりに
描画系はDockerでは特にハマりやすいので、簡単なプログラムを作り、まずDockerで実行し動作確認をするのが重要だと感じました
いいねください!