debug PDF generation

This commit is contained in:
2024-11-08 18:42:07 +09:00
parent 4e4bd7ac5d
commit a0c3a82720
2 changed files with 52 additions and 32 deletions

View File

@ -2768,19 +2768,18 @@ def export_excel(request, zekken_number, event_code):
if format_type.lower() == 'pdf':
try:
# 一時ディレクトリを作成
temp_dir = tempfile.mkdtemp()
temp_excel = os.path.join(temp_dir, f'certificate_{zekken_number}.xlsx')
temp_pdf = os.path.join(temp_dir, f'certificate_{zekken_number}.pdf')
# パスとファイル名に分離
file_dir = os.path.dirname(excel_path) # パス部分の取得
file_name = os.path.basename(excel_path) # ファイル名部分の取得
# Excelファイルを一時ディレクトリにコピー
shutil.copy2(excel_path, temp_excel)
# ファイル名の拡張子をpdfに変更
base_name = os.path.splitext(file_name)[0] # 拡張子を除いたファイル名
new_file_name = base_name + ".pdf" # 新しい拡張子を追加
# 一時ディレクトリのパーミッションを設定
os.chmod(temp_dir, 0o777)
os.chmod(temp_excel, 0o666)
# 新しいパスを作成
pdf_path = os.path.join(file_dir, new_file_name)
logger.info(f"Converting Excel to PDF in temp directory: {temp_dir}")
logger.info(f"Converting Excel to PDF in directory: {file_dir}")
# LibreOfficeを使用してExcelをPDFに変換
conversion_command = [
@ -2789,8 +2788,8 @@ def export_excel(request, zekken_number, event_code):
'--convert-to',
'pdf',
'--outdir',
temp_dir,
temp_excel
file_dir,
excel_path
]
logger.debug(f"Running conversion command: {' '.join(conversion_command)}")
@ -2811,7 +2810,7 @@ def export_excel(request, zekken_number, event_code):
logger.debug(f"Conversion output: {process.stdout}")
# PDFファイルの存在確認
if not os.path.exists(temp_pdf):
if not os.path.exists(pdf_path):
logger.error("PDF conversion failed - output file not found")
return Response(
{"error": "PDF conversion failed - output file not found"},
@ -2819,7 +2818,7 @@ def export_excel(request, zekken_number, event_code):
)
# PDFファイルを読み込んでレスポンスを返す
with open(temp_pdf, 'rb') as pdf_file:
with open(pdf_path, 'rb') as pdf_file:
pdf_content = pdf_file.read()
response = HttpResponse(pdf_content, content_type='application/pdf')