ビジネス資料を組み立てる
テキスト、図形、線、フォントを Swift の値で扱います。文字や段落の書式、新規資料のテーマ、グリッド配置・整列・等間隔配置で、提案書や分析資料を組み立てます。
SwiftSlides
PowerPoint の PPTX を読み取り、スライドを作成して保存する Swift ライブラリです。SwiftSheets・SwiftDocuments と同じように、ファイル形式の違いを共通の値モデルで扱うことを目指しています。
開発中・未リリースです。API は今後変更される可能性があります。
テキスト、図形、線、フォントを Swift の値で扱います。文字や段落の書式、新規資料のテーマ、グリッド配置・整列・等間隔配置で、提案書や分析資料を組み立てます。
既存ファイルを読み込み、テキストやスライドを編集して保存します。新しいプレゼンテーションの作成にも対応します。
読み込んだファイルの未対応 XML や関連パーツを保持して保存します。変更に伴う警告を確認できます。安全に保存できない変更はエラーになり、厳密な保存では警告がある場合も拒否します。
フォント名や文字書式を扱いますが、フォントの埋め込みとスライドの描画エンジンは含みません。表示やレイアウトの再現、すべての PowerPoint 機能への対応を約束するものではありません。
import Foundation
import SwiftSlides
let url = URL(fileURLWithPath: "presentation.pptx")
let presentation = try Presentation(contentsOf: url)
print(presentation.slides.count)import Foundation
import SwiftSlides
var presentation = Presentation()
var slide = Slide()
slide.addText("Hello", frame: Rect(
x: 40, y: 40, width: 640, height: 80
))
presentation.slides.append(slide)
try presentation.write(to: URL(
fileURLWithPath: "hello.pptx"
))ローカルファイルを扱う例です。ブラウザ内で Swift は実行しません。
公開リポジトリの main ブランチを指定します。リリース版はまだ用意していません。
Package.swift の dependencies とターゲットの dependencies に追加してください。
// Package.swift
dependencies: [
.package(
url: "https://github.com/nanbu/SwiftSlides.git",
branch: "main"
)
]
// Target dependencies
.product(name: "SwiftSlides", package: "SwiftSlides")| 形式 | 状態 | 内容 |
|---|---|---|
| PPTX | 読み取り・保存 | PowerPoint のプレゼンテーション形式。新規作成と既存ファイルの編集・保存に対応します。 |
| PPTM | 読み取り・保全保存 | マクロを含む PowerPoint 形式。VBA は実行せず保持し、マクロを捨てる PPTX 保存は拒否します。 |
| ODP | 設計段階 | LibreOffice Impress などが使うプレゼンテーション形式。読み取り・保存の実装は今後の対象です。 |
| Keynote | 設計段階 | Apple Keynote のプレゼンテーション形式。読み取り・保存の実装は今後の対象です。 |
旧 PowerPoint の .ppt、暗号化ファイル、形式間の完全変換には対応していません。機能ごとの詳しい範囲は公開リポジトリで確認できます。