関連記事
GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ
概要
以下、自分用のメモです。忘れないうちにメモメモ。。。
ひょんなことからPDFをページごとに分割してほしいという作業があったので、ついでなのでGoでやってみました。
pdfcpu というライブラリを知ったので、それのメモです。
サンプル
package main import ( "flag" "fmt" "log" "os" "github.com/pdfcpu/pdfcpu/pkg/api" ) type ( Args struct { inFile string outDir string } ) var ( args Args ) func init() { log.SetFlags(log.Lmicroseconds) flag.StringVar(&args.inFile, "in", "", "input file") flag.StringVar(&args.outDir, "out", "", "output dir") } func main() { flag.Parse() if args.inFile == "" || args.outDir == "" { flag.PrintDefaults() os.Exit(1) } if err := run(); err != nil { log.Fatal(err) } } func run() error { if err := api.SplitFile(args.inFile, args.outDir, 1, nil); err != nil { return fmt.Errorf("error splitting PDF: %w", err) } return nil }
実行すると、ページごとに別々のPDFファイルが出力されます。
pdfcpu さん、結構機能豊富みたいで「テキスト抽出」以外であれば、大抵のことは出来そう。
サンプルは以下にアップしてあります。
参考情報
Goのおすすめ書籍
過去の記事については、以下のページからご参照下さい。
サンプルコードは、以下の場所で公開しています。