このたび、Spire.Office for Python 11.5.0 のリリースをお知らせします。本バージョンでは、複数の強力な機能強化が導入されました。Spire.Doc は Word ドキュメントを Excel に変換できるようになり、Spire.PDF はテキスト置換時に文字色の指定が可能になりました。Spire.XLS は Markdown と Excel 間のシームレスな変換をサポートし、Spire.OCR は AI モデルとの統合により、画像内の文字認識精度を向上させます。さらに、すべてのコアコンポーネント(Spire.OCR を除く)は、macOS ARM のユニバーサル対応となりました。
これらの新機能に加え、Word、Excel、PDF、PowerPoint ファイルの変換、処理、保存に関する既知の問題も多数修正され、より安定した信頼性の高い操作環境を提供します。詳細は以下をご参照ください。
ここで Spire.Office for Python 11.5.0をダウンロードする:
Spire.Doc for Python
| カテゴリー | ID | 説明 |
| 最適化 | - | Chart 名前空間が更新されました
// 旧インポート(非推奨): from spire.doc.charts import ChartType // N新インポート(推奨): from spire.doc.charts.ChartType import ChartType |
| 新機能 | - | Bookmark クラスに、テーブル内ブックマークの開始列インデックスと終了列インデックスを取得するための FirstColumn プロパティと LastColumn プロパティを追加。
doc = Document() doc.LoadFromFile(inputFile) firstColumn = doc.Bookmarks["t_insert"].FirstColumn lastColumn = doc.Bookmarks["t_insert"].LastColumn |
| 新機能 | - | TableFormat クラスに、テーブルスタイル管理用の Style プロパティ、StyleOptions プロパティ、StyleName プロパティを追加。
doc = Document()
tableStyle = doc.Styles.Add(StyleType.TableStyle, "TestTableStyle3")
tableStyle.LeftIndent = 55
tableStyle.Borders.Color = Color.get_Green()
tableStyle.HorizontalAlignment = RowAlignment.Right
tableStyle.Borders.BorderType = BorderStyle.Single
section = doc.AddSection()
table = section.AddTable()
table.ResetCells(3, 3)
table.Rows[0].Cells[0].AddParagraph().AppendText("Aligned according to left indent")
table.PreferredWidth = PreferredWidth.FromPoints(300)
table.Format.StyleName = "TestTableStyle3"
style = doc.Styles.FindByName("TestTableStyle3")
if (style is not None) and isinstance(style, TableStyle):
tableStyle = style
tableStyle.Borders.Color = Color.get_Black()
tableStyle.Borders.BorderType = BorderStyle.Double
tableStyle.RowStripe = 3
tableStyle.ConditionalStyles[TableConditionalStyleType.OddRowStripe].Shading.BackgroundPatternColor = Color.get_LightBlue()
tableStyle.ConditionalStyles[TableConditionalStyleType.EvenRowStripe].Shading.BackgroundPatternColor = Color.get_LightCyan()
tableStyle.ColumnStripe = 1
tableStyle.ConditionalStyles[TableConditionalStyleType.EvenColumnStripe].Shading.BackgroundPatternColor = Color.get_LightPink()
table.ApplyStyle(tableStyle)
table.Format.StyleOptions = table.Format.StyleOptions | TableStyleOptions.ColumnStripe
doc.SaveToFile(outputFile, FileFormat.Docx) |
| 新機能 | - | Style クラスに、ドキュメントからスタイルを削除する RemoveSelf メソッドを追加。
style = doc.Styles.FindByName("TestTableStyle3")
style.RemoveSelf() |
| 新機能 | - | Document クラスの機能を強化。ページ抽出機能(ExtractPages)、最初のセクションへのアクセス機能(FirstSection)、ハイフネーション辞書の登録・解除機能(RegisterHyphenationDictionary / UnregisterHyphenationDictionary / IsHyphenationDictionaryRegistered)を追加。 |
| 新機能 | SPIREDOC-10777 | ARM アーキテクチャを採用した macOS への対応を追加しました。 |
| 新機能 | SPIREDOC-10770 | MHTML から PDF への変換をサポートしました。
document = Document()
document.LoadFromFile("input.mhtml")
document.SaveToFile("output.pdf", FileFormat.PDF)
document.Close()
|
| 新機能 | SPIREDOC-11793 | Word の数式を標準の MathML としてエクスポートし、HTML で正しくレンダリングできるようにサポートしました。
HtmlExportOptions options = doc.HtmlExportOptions options.OfficeMathOutputMode = HtmlOfficeMathOutputMode.MathML |
| 新機能 | SPIREDOC-11872 | Word からExcelへの変換をサポートしました。
document = Document()
document.LoadFromFile("input.docx")
document.SaveToFile("output.xlsx", FileFormat.XLSX)
document.Close() |
| 新機能 | SPIREDOC-10777 | ARM アーキテクチャを採用した macOS への対応を追加しました。 |
| 不具合修正 | SPIREDOC-11668 | 変更追跡機能を有効にした状態でテキスト置換を実行すると不正な結果が出力される不具合を修正。 |
| 不具合修正 | SPIREDOC-11594/td> | Python v3.14 環境でドキュメントプロパティを取得する際に、“NotImplementedError” が発生する問題を修正しました。 |
| 不具合修正 | SPIREDOC-11602 | macOS 上で CharacterFormat.FontSize を設定した際に、“RuntimeError: ffi_prep_cif_var failed” が発生する問題を修正しました。 |
| 不具合修正 | SPIREDOC-11701 | グラフに系列を追加する際にプログラムが例外をスローする問題を修正しました。 |
| 不具合修正 | SPIREDOC-11832 | Word を PDF に変換する際にデジタル署名の追加が失敗する問題を修正しました。 |
Spire.XLS for Python
| カテゴリー | ID | 説明 |
| 新機能 | SPIREXLS-5183 | ARM アーキテクチャの macOS サポートを追加しました。 |
| 新機能 | SPIREXLS-6094 | ピボットテーブルのフィールドリストを非表示にする機能を追加しました。
workbook.HidePivotFieldList = true; |
| 新機能 | SPIREXLS-6097 | Excel から Markdown への変換に対応しました。
workbook = Workbook() workbook.LoadFromFile(inputFile) markdownOptions = MarkdownOptions() markdownOptions.SavePicInRelativePath = False markdownOptions.SaveHyperlinkAsRef = False workbook.SaveToMarkdown(outputFile, markdownOptions) workbook.Dispose() |
| 新機能 | SPIREXLS-6098 | Markdown から Excel への変換に対応しました。
workbook = Workbook()
workbook.LoadFromFile(inputFile)
wb.SaveToFile("out.xlsx", ExcelVersion.Version2010); |
| 不具合修正 | SPIREXLS-5970 | コピーされた OLE オブジェクトが WPS で正しく表示されない問題を修正しました。 |
| 不具合修正 | SPIREXLS-6011 | マクロの削除が正しく動作しない問題を修正しました。 |
| 不具合修正 | SPIREXLS-6012 | 誤った設定 workbook.ConverterSetting.Xdpi に対してエラーメッセージが表示されない問題を修正しました(正しくは XDpi)。 |
| 不具合修正 | SPIREXLS-6026 | テキスト形式の値を数値形式に変換できない問題を修正しました。 |
| 不具合修正 | SPIREXLS-6032 | Excel ドキュメントを EMF に保存する際に例外が発生する問題を修正しました。 |
| 不具合修正 | SPIREXLS-5986 | セルの Value2 プロパティを設定した際に例外が発生する問題を修正しました。 |
| 不具合修正 | SPIREXLS-6089 | Python 3.14.2 環境でパッケージを実行すると “NotImplementedError: There is currently no support for "str |
| 不具合修正 | SPIREXLS-6091 | ピボットテーブルの ShowValuesRow を False に設定しても反映されない問題を修正しました。 |
| 不具合修正 | SPIREXLS-6116 | ピボットテーブル作成時に大きなデータ範囲を指定すると例外が発生する問題を修正しました。 |
| 不具合修正 | SPIREXLS-6095 | ピボットテーブルのセル内でテキストの折り返しが機能しない問題を修正しました。 |
| 不具合修正 | SPIREXLS-6127 | 列挙クラス名を SortComparsionType から SortComparisonType に修正しました。 |
Spire.Presentation for Python
| カテゴリー | ID | 説明 |
| 新機能 | SPIREPPT-3037 | ARM アーキテクチャを採用した macOS への対応を追加しました。 |
| 不具合修正 | SPIREPPT-2859 SPIREPPT-3052 |
macOSでPython V12以上を使用しているときに発生する「ffi_prep_cif_var failed」エラーを修正しました。 |
| 不具合修正 | SPIREPPT-3028 | AddFromSVGAsShapesを使用してインポートする際のSVG効果が不正確である問題を修正しました。 |
| 不具合修正 | SPIREPPT-3046 SPIREPPT-3053 |
PPTXをPDFに変換する際に見つかった不整合なチャート内容の問題を修正しました。 |
| 不具合修正 | SPIREPPT-3054 | PPTXをPDFに変換する際にグラフが欠落する問題を修正しました。 |
| 不具合修正 | SPIREPPT-3037 | PPT を画像に変換する際にコンテンツが欠落する問題を修正しました。 |
| 不具合修正 | SPIREPPT-3080 | PowerPoint ドキュメントを画像に変換する際にプログラムがハングする問題を修正しました。 |
Spire.PDF for Python
| カテゴリー | ID | 説明 |
| 新機能 | SPIREPDF-7000 SPIREPDF-7698 | PdfCustomAppearance クラスを介して署名表示形式をカスタマイズする機能を追加しました。
class MyPdfCustomAppearance(IPdfSignatureAppearance):
def __init__(self):
pass
def Generate(self, g: PdfCanvas):
x = 0.0
y = 0.0
fontSize = 10.0
font = PdfTrueTypeFont("SimSun", fontSize, PdfFontStyle.Regular, True)
lineHeight = fontSize
image = PdfImage.FromFile(inputImage)
g.DrawImage(image, x, y)
x = float(image.Width)
g.DrawString("Signer: Gary", font, PdfBrushes.get_Red(), PointF(x, y))
y += lineHeight + 5
g.DrawString("Phone: +86 12345678", font, PdfBrushes.get_Black(), PointF(x, y))
y += lineHeight + 5
g.DrawString("Address: Sichuan Province, China", font, PdfBrushes.get_Black(), PointF(x, y))
doc = PdfDocument()
doc.LoadFromFile(inputFile)
signatureMaker = PdfOrdinarySignatureMaker(doc, inputFile_pfx, "e-iceblue")
my_appearance = MyPdfCustomAppearance()
customAppearance = PdfCustomAppearance(my_appearance)
signatureMaker.MakeSignature("Signer", doc.Pages.get_Item(0), 90.0, 550.0, 270.0, 640.0, customAppearance)
doc.SaveToFile(outputFile)
doc.Close() |
| 新機能 | SPIREPDF-7053 | 抽出したテキストのフォントスタイル情報を取得する機能を追加しました。
PdfDocument doc = new PdfDocument(); doc.LoadFromFile(inputFile); // 矩形を定義する RectangleF rctg = new RectangleF(0, 0, 200, 300); var page = doc.Pages[0]; PdfTextFinder finder = new PdfTextFinder(page); finder.Options.Parameter = TextFindParameter.None; finder.Options.Area = rctg; // 矩形内のテキストを検索する List |
| 新機能 | SPIREPDF-7558 | Mac M シリーズチップ(ARM64 アーキテクチャ)に対する互換性サポートを実装完了。 |
| 新機能 | SPIREPDF-7907 | ReplaceText インターフェースに色パラメータのオーバーロードを追加しました。
textReplacer.ReplaceText("Doc", "file", Color.get_Blue()) |
| 不具合修正 | SPIREPDF-6659 | テキスト置換時に不正な結果が生成される不具合を修正しました。 |
| 不具合修正 | SPIREPDF-7483 | macOS 環境で特定の Python 機能を実行した際に「ffi_prep_cif_var failed」エラーが発生する不具合を修正しました。 |
| 不具合修正 | SPIREPDF-7819 SPIREPDF-7821 SPIREPDF-7822 | PDF から変換された PDF/A-2B 準拠ドキュメントからコピーしたコンテンツが不正になる不具合を修正しました。 |
| 不具合修正 | SPIREPDF-7864 | テキスト置換時に色を設定しても意図した通りに反映されない不具合を修正しました。 |
Spire.Barcode for Python
| カテゴリー | ID | 説明 |
| 新機能 | — | ARM アーキテクチャを採用した macOS への対応を追加しました。 |
Spire.OCR for Python
| カテゴリー | ID | 説明 |
| 新機能 | — | AIモデルをSpire.OCRに統合する機能を追加。(注:ユーザーはご自身でAIプラットフォームからAPIキーを取得する必要があります。)
def _run_ai_test(self):
filename = "1.png"
output_file = "scan.txt"
file_path = r"F:\3.3.0AI\AI\ocr.xml"
model = "AIModel"
api_key = "ApiKey"
api_url = "ApiUrl"
self._update_ocr_config(file_path, model, api_key, api_url)
self._scan_img(filename, output_file)
def _scan_img(self, filename, output_file):
scanner = OcrScanner()
configure_options = ConfigureOptions()
configure_options.ModelPath = r"F:\3.3.0AI\AI"
configure_options.Language = "Japanese"
scanner.ConfigureDependencies(configure_options)
scanner.Scan(filename)
text = scanner.Text.ToString()
with open(output_file, "w", encoding="utf-8") as f:
f.write(text)
def _update_ocr_config(self, file_path, model, api_key, api_url):
tree = ET.parse(file_path)
root = tree.getroot()
model_node = root.find('./configs/model')
api_key_node = root.find('./configs/apiKey')
api_url_node = root.find('./configs/apiUrl')
if model_node is not None:
model_node.text = model
if api_key_node is not None:
api_key_node.text = api_key
if api_url_node is not None:
api_url_node.text = api_url
tree.write(file_path, encoding='utf-8', xml_declaration=True)
print("XMLが正常に更新されました!") |






