from hwpapi import App
with App() as app:
app.open("report.hwp")
app.save("out/report.pdf") # β PDF
app.save("out/report.html") # β HTML+ (νκΈ2007 μ ν HTML)
app.save("out/report.htm") # β HTML (ꡬν HTML)
app.save("out/report.png") # β PNG
app.save("out/report.txt") # β νλ¬Έ ν
μ€νΈ
app.save("out/report.docx") # β Microsoft WordExport to PDF, HTML, image, text
Save the active document in any format HWP supports
app.save(path) ν μ€μ΄λ©΄ νμ₯μμ λ°λΌ μ μ ν ν¬λ§·μΌλ‘ μ μ₯λ©λλ€. λͺ
μμ μΌλ‘ format= μ μ€ μλ μκ³ , hwpapi.io.export_* μ νμλ³ ν¬νΌλ₯Ό μΈ μλ μμ΅λλ€. μ΄ λ μνΌλ μΈ κ°λμ μ°¨μ΄μ μ¬μ© μμ μ μ 리ν©λλ€.
1. νμ₯μκ° μμμ ν¬λ§·μ μ νλ κ²½μ°
hwpapi.App.save() μ λ§€ν(_SAVE_FORMAT_MAP)μ λ±λ‘λ νμ₯μλΌλ©΄ format= μΈμ μμ΄ κ·Έλλ‘ λ©λλ€.
| νμ₯μ | HWP ν¬λ§· λ¬Έμμ΄ |
|---|---|
.hwp |
HWP |
.pdf |
PDF |
.hwpx |
HWPX |
.hml |
HWPML2X |
.png |
PNG |
.txt |
TEXT |
.docx |
MSWORD |
.html |
HTML+ |
.htm |
HTML |
HTML λ μ’
λ₯ β .html μ νκΈ2007 μ΄νμ ν₯μλ HTML μΆλ ₯ (HTML+), .htm μ ꡬν HTML μ
λλ€. νΈνμ±μ΄ μ€μν κ³³(λ κ±°μ λΈλΌμ°μ , μΈλΆ λ³ν νμ΄νλΌμΈ) μμλ§ .htm μ μ°μΈμ.
2. νμ₯μλ₯Ό λͺ» μ‘κ±°λ κ°μ νκ³ μΆμ λ
νμ₯μ λ§€νμ μλ ν¬λ§·, λλ .hwp μΈλ° λ€λ₯Έ ν¬λ§·μΌλ‘ μ μ₯νκ³ μΆμ λλ format= μΌλ‘ μ§μ μ§μ ν©λλ€.
# νμ₯μκ° .data κ°μ λΉνμ€μ΄μ§λ§ PDF λ‘ μ μ₯νκ³ μΆμ λ
app.save("snapshot.data", format="PDF")
# νμ₯μλ .html μΈλ° ꡬν HTML λ‘ κ°μ
app.save("legacy.html", format="HTML")3. hwpapi.io.export_* ν¬νΌ β FileIOError μλ λ³ν
hwpapi.io μ νμλ³ ν¬νΌλ λ΄λΆμ μΌλ‘ app.save_as() λ₯Ό νΈμΆνλ©΄μ pywintypes.com_error λ₯Ό FileIOError λ‘ κ°μλλ€. νΈμΆμκ° νμ ν¨ν€μ§ κ³ μ μμΈλ§ μ‘μΌλ©΄ λλλ‘ λ§λ€μ΄μ£Όλ μμ λνΌμ
λλ€.
from hwpapi import App
from hwpapi.io import export_pdf, export_image, export_text
from hwpapi.errors import FileIOError
with App() as app:
app.open("report.hwp")
try:
export_pdf(app, "out/report.pdf")
export_image(app, "out/report.png")
export_text(app, "out/report.txt")
except FileIOError as exc:
print(f"export failed: {exc}")| ν¬νΌ | ν¬λ§· |
|---|---|
export_pdf(app, path) |
|
export_image(app, path) |
νμ₯μ sniff β .png β PNG, κ·Έ μΈ β BMP |
export_text(app, path) |
TEXT (νλ¬Έ) |
HTML μ μ© ν¬νΌλ μμ§ μμ§λ§, ν¨ν΄μ λμΌν©λλ€ β export_pdf λ₯Ό λ³Έλ 10μ€ μ λλ‘ μ½κ² λ§λ€ μ μμ΅λλ€ (hwpapi/io/export.py μ°Έκ³ ).
4. app.save() vs app.save_as()
| λ©μλ | μ¬μ© μμ |
|---|---|
app.save() (μΈμ μμ) |
νμ¬ νμΌ μμΉμ in-place μ μ₯ (HwpObject.Save) |
app.save(path) |
HwpObject.SaveAs λ‘ μ μ₯ β νμ± λ¬Έμλ₯Ό ν΅μ§Έλ‘ μ μ₯ |
app.save_as(path) |
v1 μ save_block μ ν΄λΉ β μ ν μμ(λΈλ‘)λ§ μ μ₯. μΌλ° μ¬μ©μμλ save() λ©΄ μΆ©λΆ |
5. ν΄λ μΌκ΄ λ³ν
from pathlib import Path
from hwpapi import App
src = Path("input") # *.hwp λ€μ΄ μλ ν΄λ
dst = Path("output_pdf")
dst.mkdir(exist_ok=True)
with App() as app:
for hwp in src.glob("*.hwp"):
app.open(str(hwp.absolute()))
app.save(str(dst / hwp.with_suffix(".pdf").name))
app.close()
print(f"converted {hwp.name}")