MCPcopy
hub / github.com/KKKKhazix/khazix-skills / main

Function main

hv-analysis/scripts/md_to_pdf.py:252–283  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

250
251
252def main():
253 parser = argparse.ArgumentParser(description="横纵分析法报告 Markdown → PDF")
254 parser.add_argument("input", help="输入的 Markdown 文件路径")
255 parser.add_argument("output", help="输出的 PDF 文件路径")
256 parser.add_argument("--title", default=None, help="报告标题")
257 parser.add_argument("--author", default="数字生命卡兹克", help="作者名")
258 args = parser.parse_args()
259
260 with open(args.input, "r", encoding="utf-8") as f:
261 md_text = f.read()
262
263 # 提取元信息
264 meta_line = ""
265 for line in md_text.split("\n"):
266 stripped = line.strip().lstrip(">").strip()
267 if "研究时间" in stripped or "所属领域" in stripped or "研究对象类型" in stripped:
268 meta_line = stripped
269 break
270
271 html = md_to_html(md_text, title=args.title or "横纵分析报告", meta_line=meta_line, author=args.author)
272
273 # 保存中间 HTML(便于调试)
274 html_path = args.output.replace('.pdf', '.html')
275 with open(html_path, 'w', encoding='utf-8') as f:
276 f.write(html)
277 print(f"[OK] HTML 已生成: {html_path}")
278
279 # 转 PDF
280 from weasyprint import HTML
281 HTML(string=html).write_pdf(args.output)
282 size_kb = os.path.getsize(args.output) / 1024
283 print(f"[OK] PDF 已生成: {args.output} ({size_kb:.1f} KB)")
284
285
286if __name__ == "__main__":

Callers 1

md_to_pdf.pyFile · 0.85

Calls 1

md_to_htmlFunction · 0.85

Tested by

no test coverage detected