メタデータを取り扱う

pdf

version1.0

# 確認
import pypdf

infile = pypdf.PdfReader("sample.pdf", "rb")

for k in infile.metadata.keys():
    print(k, ':', infile.metadata[k])
# 削除
import pypdf

infile = pypdf.PdfReader("sample.pdf", "rb")
output = pypdf.PdfWriter()

output.clone_Reader_Document_Root(infile) # 以前と同様に処理されず別のメタデータに更新されるため別項で提案する
output.add_metadata({'/Producer': "e"}) # 作者情報を追加する
output.write("output.pdf")

version1.1

metadata_pdf.zip

import sys
import os
import pypdf

# ファイルパスの表示
if len(sys.argv) > 1:

    # フルパスと拡張子を確認する
    full_path = os.path.abspath(sys.argv[1])
    ext = os.path.splitext(full_path)[1]
    print("file path: " + full_path)
    print("file extension:" + ext)

    # pdfファイルでない場合は終了する
    if ext != ".pdf":
        print("ドラックしたファイルはpdfファイルではありません")
        sys.exit()

else:
    print("pdfファイルをexeにドラックアンドドロップしてください")
    sys.exit()

user_input  = input("How do you handle this file's metadata ? (d: delete, other: not delete, display metadata): ")

# メタデータを取り扱う
if user_input == "d":
    
    print("メタデータを削除します↓")
    pdf_output = pypdf.PdfWriter(clone_from=full_path)

    # メタデータの値を更新する(値を空白にして削除したように見せる)
    for k in pdf_output.metadata.keys():
        pdf_output.add_metadata({k: ""})

    print("metadata deleted.")
    pdf_output.add_metadata({'/Author': "e"})
    pdf_output.write(os.path.splitext(full_path)[0]+"_output.pdf")
    
    # 一旦、終了する
    pdf_output.close()

    # メタデータを確認する
    print("メタデータを表示します↓")
    pdf_output = pypdf.PdfReader(os.path.splitext(full_path)[0]+"_output.pdf")

    for k in pdf_output.metadata.keys():
        print(k, ':', pdf_output.metadata[k])

else:
    # メタデータを確認する
    print("メタデータを表示します↓")
    pdf = pypdf.PdfReader(full_path)

    for k in pdf.metadata.keys():
        print(k, ':', pdf.metadata[k])

print("終了するにはキーを押してください")
input()

image

version1.0

# 確認
identify -verbose 画像ファイルのパス/画像ファイル名.png
# 削除
mogrify -strip 画像ファイルのパス/画像ファイル名.png

version1.1

metadata_ImageMagick.bat

@echo off
rem ドラック&ドロップしたファイルパスを表示する

echo "file path is: " %1

rem メタデータの取り扱いを確認する
set /p  input="How do you handle this file's metadata ? (d: delete, other: not delete, display metadata): "

rem メタデータを取り扱う
if "%input%" == "d" (
    rem メタデータの削除
    echo.
    echo "メタデータを削除します↓"
    mogrify -strip %1
    rem メタデータの確認
    echo.
    echo "メタデータを表示します↓"
    identify -verbose %1
) else (
    rem メタデータの確認
    echo.
    echo "メタデータを表示します↓"
    identify -verbose %1
)

pause

mp4

version1.0

# 確認
ffmpeg -i .\output.gif -f ffmetadata
# テキストに吐き出す > でリダイレクトしないので注意
ffmpeg -i .\output.gif -f ffmetadata output.txt
# 削除
ffmpeg -i output.gif -map_metadata -1 output2.gif

version1.1

metadata_ffmpeg.bat

@echo off
rem ドラック&ドロップしたファイルパスを表示する

echo "file path is: " %1

rem メタデータの取り扱いを確認する
set /p  input="How do you handle this file's metadata ? (d: delete, other: not delete, display metadata): "

rem メタデータを取り扱う
if "%input%" == "d" (
    rem メタデータの削除
    echo.
    echo "メタデータを削除します↓"
    ffmpeg -i %1 -map_metadata -1 %~dp1%~n1_out%~x1
    rem メタデータの確認
    echo.
    echo "メタデータを表示します↓"
    ffmpeg -i %~dp1%~n1_out%~x1 -f ffmetadata 
) else (
    rem メタデータの確認
    echo.
    echo "メタデータを表示します↓"
    ffmpeg -i %1 -f ffmetadata 
)

pause

Topページに戻る