0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

hexapdfを使ってPDFのプロパティを編集する

Posted at

環境

Ruby3.3
Windows10

はじめに

win32oleを使ってExcelファイルをPDFに出力したところ、PDFファイルを開くとプロパティの値がおかしくなっていました。PDFファイルのプロパティ値を正しく修正するためのトラブルシュート記事です。

そもそも、PDFファイルのプロパティ値は出力元のExcelファイルのメタデータがそのまま引用されます。PDFファイルを作成する直前にExcelファイルのメタデータを強制的にいじる方法もありますが、PDFファイルを作成した後に、PDFファイルを編集することもできます。

Excelファイルからメタデータを拾う場合はwin32oleで対応できますが、PDFファイルを編集する場合は、別途PDF系のgemを使う必要があります。

内容

win32oleを使ってExcelファイルから出力したPDFファイルのプロパティ値を表示するとこのようになっていました。

無題.png

タイトルに出力元のExcelファイル名が表示されています。しかも、日本語部分が文字化けしています。更に作成者が0となっており、折角なのでこちらも編集しておきます。

PDFファイルを編集するgemにhexapdfを使いました。
https://rubygems.org/gems/hexapdf

作成したコードはこちらです。
単純にPDFファイルをオープンして、任意の内容に編集してライトをするだけです。

changepdf.rb
def changepdf(file)

    require 'hexapdf'

    path = "D:\\hoge\\#{file}.pdf"

    doc = HexaPDF::Document.open(path)
    doc.trailer[:Info][:Title] = "#{file}"
    doc.trailer[:Info][:Author] = "テストユーザー"
    doc.write(path, optimize: true)
end

changepdf("請求書")

編集後のプロパティ値です。このようにタイトルにはPDFのファイル名、作成者は任意の名前で編集することができました。

無題1.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?