メタデータを取り扱う
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
- pythonをexe化してpdfをドラックアンドドロップ出来るようにする
- 削除についてはpypdfが更新されたためか意図した通りには動作しないことが分かったため、その点も含めて更新する
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ページに戻る