Markdown から作成
Markdown コンテンツを、適切に整形された PDF ドキュメントに変換します。見出し、段落、太字/斜体、リスト、コードブロック、引用などに対応しています。
クイック例
Python
from pdf_oxide import Pdf
pdf = Pdf.from_markdown("# Hello\n\nWorld")
pdf.save("out.pdf")
WASM
import { WasmPdf } from "pdf-oxide-wasm";
import { writeFileSync } from "fs";
const pdf = WasmPdf.fromMarkdown("# Hello\n\nWorld");
writeFileSync("out.pdf", pdf.toBytes());
Rust
use pdf_oxide::api::Pdf;
let pdf = Pdf::from_markdown("# Hello\n\nWorld")?;
pdf.save("out.pdf")?;
Go
package main
import (
"log"
pdfoxide "github.com/yfedoseev/pdf_oxide/go"
)
func main() {
pdf, err := pdfoxide.FromMarkdown("# Hello\n\nWorld")
if err != nil { log.Fatal(err) }
defer pdf.Close()
if err := pdf.Save("out.pdf"); err != nil { log.Fatal(err) }
}
C#
using PdfOxide;
using var pdf = Pdf.FromMarkdown("# Hello\n\nWorld");
pdf.Save("out.pdf");
Java
import fyi.oxide.pdf.Pdf;
import java.nio.file.Path;
try (Pdf pdf = Pdf.fromMarkdown("# Hello\n\nWorld")) {
pdf.saveTo(Path.of("out.pdf"));
}
PHP
use PdfOxide\Pdf;
$pdf = Pdf::fromMarkdown("# Hello\n\nWorld");
file_put_contents('out.pdf', $pdf->save());
Ruby
require 'pdf_oxide'
PdfOxide::Pdf.from_markdown("# Hello\n\nWorld") { |pdf| pdf.save('out.pdf') }
C++
#include <pdf_oxide/pdf_oxide.hpp>
auto pdf = pdf_oxide::Pdf::from_markdown("# Hello\n\nWorld");
pdf.save("out.pdf");
Swift
import PdfOxide
let pdf = try Pdf.fromMarkdown("# Hello\n\nWorld")
try pdf.save("out.pdf")
Kotlin
import fyi.oxide.pdf.Pdf
Pdf.fromMarkdown("# Hello\n\nWorld").use { it.saveTo(java.nio.file.Path.of("out.pdf")) }
Dart
import 'package:pdf_oxide/pdf_oxide.dart';
final pdf = Pdf.fromMarkdown('# Hello\n\nWorld');
pdf.save('out.pdf');
R
library(pdfoxide)
pdf <- pdf_from_markdown("# Hello\n\nWorld")
pdf_save(pdf, "out.pdf")
Julia
using PdfOxide
pdf = from_markdown("# Hello\n\nWorld")
save(pdf, "out.pdf")
Zig
const pdf_oxide = @import("pdf_oxide");
var pdf = try pdf_oxide.Pdf.fromMarkdown("# Hello\n\nWorld");
try pdf.save("out.pdf");
Scala
import fyi.oxide.pdf.Pdf
import scala.util.Using
Using.resource(Pdf.fromMarkdown("# Hello\n\nWorld"))(_.saveTo(java.nio.file.Path.of("out.pdf")))
Clojure
(require '[pdf-oxide.core :as pdf])
(with-open [p (pdf/from-markdown "# Hello\n\nWorld")]
(pdf/save p "out.pdf"))
Objective-C
#import "POXPdfOxide.h"
NSError *err = nil;
POXPdf *pdf = [POXPdf fromMarkdown:@"# Hello\n\nWorld" error:&err];
[pdf saveToPath:@"out.pdf" error:&err];
Elixir
{:ok, pdf} = PdfOxide.from_markdown("# Hello\n\nWorld")
PdfOxide.save(pdf, "out.pdf")
サポートされる Markdown 構文
| 構文 | Markdown | 説明 |
|---|---|---|
| 見出し 1 | # Title |
大きな太字の見出し |
| 見出し 2 | ## Section |
中サイズの太字の見出し |
| 見出し 3 | ### Subsection |
小さな見出し |
| 見出し 4〜6 | #### ... |
より小さな見出し |
| 段落 | 空行で区切られたプレーンテキスト | 自動改行される本文 |
| 太字 | **bold** |
太字テキスト |
| 斜体 | *italic* |
斜体テキスト |
| 箇条書きリスト | - item または * item |
黒丸付きリスト |
| 番号付きリスト | 1. item |
番号付きリスト |
| コードブロック | ``` で囲んだブロック |
等幅のコード |
| インラインコード | `code` |
インラインの等幅 |
| 引用 | > quoted text |
インデントされた引用 |
完全な API リファレンス
Pdf::from_markdown(content)(静的メソッド)
デフォルト設定(Letter ページ、72pt の余白、12pt の Helvetica)を使って Markdown コンテンツから PDF を作成します。
Rust:
use pdf_oxide::api::Pdf;
let pdf = Pdf::from_markdown("# Report\n\nFindings are summarized below.")?;
pdf.save("report.pdf")?;
JavaScript:
import { WasmPdf } from "pdf-oxide-wasm";
import { writeFileSync } from "fs";
const pdf = WasmPdf.fromMarkdown("# Report\n\nFindings are summarized below.");
writeFileSync("report.pdf", pdf.toBytes());
Python:
from pdf_oxide import Pdf
pdf = Pdf.from_markdown("# Report\n\nFindings are summarized below.")
pdf.save("report.pdf")
Go:
pdf, err := pdfoxide.FromMarkdown("# Report\n\nFindings are summarized below.")
if err != nil { log.Fatal(err) }
defer pdf.Close()
_ = pdf.Save("report.pdf")
C#:
using var pdf = Pdf.FromMarkdown("# Report\n\nFindings are summarized below.");
pdf.Save("report.pdf");
Java:
try (Pdf pdf = Pdf.fromMarkdown("# Report\n\nFindings are summarized below.")) {
pdf.saveTo(Path.of("report.pdf"));
}
PHP:
$pdf = Pdf::fromMarkdown("# Report\n\nFindings are summarized below.");
file_put_contents('report.pdf', $pdf->save());
Ruby:
PdfOxide::Pdf.from_markdown("# Report\n\nFindings are summarized below.") { |p| p.save('report.pdf') }
C++:
auto pdf = pdf_oxide::Pdf::from_markdown("# Report\n\nFindings are summarized below.");
pdf.save("report.pdf");
Swift:
let pdf = try Pdf.fromMarkdown("# Report\n\nFindings are summarized below.")
try pdf.save("report.pdf")
Kotlin:
Pdf.fromMarkdown("# Report\n\nFindings are summarized below.")
.use { it.saveTo(java.nio.file.Path.of("report.pdf")) }
Dart:
final pdf = Pdf.fromMarkdown('# Report\n\nFindings are summarized below.');
pdf.save('report.pdf');
R:
pdf <- pdf_from_markdown("# Report\n\nFindings are summarized below.")
pdf_save(pdf, "report.pdf")
Julia:
pdf = from_markdown("# Report\n\nFindings are summarized below.")
save(pdf, "report.pdf")
Zig:
var pdf = try pdf_oxide.Pdf.fromMarkdown("# Report\n\nFindings are summarized below.");
try pdf.save("report.pdf");
Scala:
Using.resource(Pdf.fromMarkdown("# Report\n\nFindings are summarized below."))(
_.saveTo(java.nio.file.Path.of("report.pdf")))
Clojure:
(with-open [p (pdf/from-markdown "# Report\n\nFindings are summarized below.")]
(pdf/save p "report.pdf"))
Objective-C:
NSError *err = nil;
POXPdf *pdf = [POXPdf fromMarkdown:@"# Report\n\nFindings are summarized below." error:&err];
[pdf saveToPath:@"report.pdf" error:&err];
Elixir:
{:ok, pdf} = PdfOxide.from_markdown("# Report\n\nFindings are summarized below.")
PdfOxide.save(pdf, "report.pdf")
Python シグネチャ:
Pdf.from_markdown(
content: str,
title: str | None = None,
author: str | None = None
) -> Pdf
PdfBuilder::new().from_markdown(content)(ビルダーパターン)
ページサイズ、余白、フォントサイズ、メタデータを制御する必要がある場合は PdfBuilder を使用します。
Rust:
use pdf_oxide::api::PdfBuilder;
use pdf_oxide::writer::PageSize;
let pdf = PdfBuilder::new()
.title("Quarterly Report")
.author("Finance Team")
.page_size(PageSize::A4)
.margin(54.0) // 0.75 inch margins
.font_size(11.0)
.line_height(1.6)
.from_markdown("# Q4 Report\n\n## Revenue\n\nRevenue grew **12%** year-over-year.")?;
pdf.save("quarterly.pdf")?;
応用例
複数セクションのドキュメント
use pdf_oxide::api::Pdf;
let markdown = r#"
# Annual Report 2025
## Executive Summary
The company achieved **record growth** in all key metrics.
## Financial Highlights
- Revenue: $142M (+18%)
- Net Income: $31M (+24%)
- Operating Margin: 21.8%
## Strategic Priorities
1. Expand international presence
2. Launch next-generation platform
3. Invest in R&D capabilities
### Timeline
> Phase 1 launches in Q2, with full rollout expected by Q4.
## Technical Appendix
```json
{
"version": "2.1.0",
"release_date": "2025-03-15"
}
"#;
let pdf = Pdf::from_markdown(markdown)?; pdf.save(“annual_report.pdf”)?;
### メタデータ付きの Python
```python
from pdf_oxide import Pdf
content = """
# Meeting Notes
## Attendees
- Alice (Engineering)
- Bob (Product)
- Carol (Design)
## Action Items
1. **Alice**: Complete API review by Friday
2. **Bob**: Update roadmap with new timeline
3. **Carol**: Share mockups for dashboard redesign
"""
pdf = Pdf.from_markdown(content, title="Meeting Notes", author="Alice")
pdf.save("meeting_notes.pdf")
ファイルから Markdown を読み込む
from pdf_oxide import Pdf
with open("README.md") as f:
content = f.read()
pdf = Pdf.from_markdown(content, title="README")
pdf.save("readme.pdf")
import { WasmPdf } from "pdf-oxide-wasm";
import { readFileSync, writeFileSync } from "fs";
const content = readFileSync("README.md", "utf-8");
const pdf = WasmPdf.fromMarkdown(content);
writeFileSync("readme.pdf", pdf.toBytes());
use pdf_oxide::api::Pdf;
let content = std::fs::read_to_string("README.md")?;
let pdf = Pdf::from_markdown(&content)?;
pdf.save("readme.pdf")?;
関連ページ
- HTML から作成 – HTML を PDF に変換
- PdfBuilder の流暢な API – ビルダーの完全な設定オプション
- DocumentBuilder の低レベル API – プログラムによるページ構築