Spire.Office for Java 11.1.0 のリリースを喜んでお知らせします。本バージョンにおいて、Spire.Doc for Java がテーブルへのカスタムスタイル適用をサポート;Spire.XLS for Java は数式の挿入、取得、更新に対応しています;Spire.Presentation for Java は、WEBP画像の解析をサポートします;Spire.PDF for Java 12.1.4 は PDF 比較結果をファイルストリームに保存する機能をサポート。さらに、Word/Excel/PDF/PowerPoint ファイルの変換および処理過程で発生していた多くの既知の問題が正常に修正されました。詳細については以下をご参照ください。
Spire.Office for Java 11.1.0 を入手する場合は、以下のリンクをクリックしてください:
このリリースで行われた変更のリストは次のとおりです
Spire.Doc for Java
| カテゴリー | ID | 説明 |
| 最適化 | - | Document.getListStyles() プロパティを廃止し、Document.getListReferences() に置き換えました。 |
| 最適化 | - | ListStyle のパブリックコンストラクタを削除しました。ListStyle 作成用にStyleCollection.add(ListType listType, string name) を追加しました。
ListStyle listStyle = document.getStyles().add(ListType.Numbered, "levelstyle");
listStyle.isCustomStyle(true);
ListLevelCollection levels = listStyle.getListRef().getLevels();
levels.get(0).setPatternType(ListPatternType.Arabic);
levels.get(0).setStartAt(1);
levels.get(0).getCharacterFormat().setFontName("Trebuchet MS"); |
| 最適化 | - | 段落に ListStyle を適用するメソッドを更新しました。
paragraph.getListFormat().applyStyle(ListStyle listStyle); paragraph.getListFormat().setListLevelNumber(int leverNumber) または paragraph.getListFormat().applyListRef(ListDefinitionReference list, int leverNumber); |
| 最適化 | - | ListFormat.getCurrentListStyle() メソッドを削除し、ListFormat.getCurrentListRef() に置き換えました。 |
| 新機能 | - | 組み込みテンプレートから多レベルリストを作成するため、ListCollection に add(ListTemplate template) メソッドを追加しました。
Document document = new Document();
Section sec = document.addSection();
Paragraph paragraph = sec.addParagraph();
// デフォルトの箇条書きリストテンプレートを作成
ListTemplate template = ListTemplate.Bullet_Default;
ListDefinitionReference listRef = document.getListReferences().add(template);
// デフォルトの番号付きリストテンプレートを作成
ListTemplate template1 = ListTemplate.Number_Default;
listRef = document.getListReferences().add(template1);
listRef.getLevels().get(2).setStartAt(4);// 第3レベルの開始番号を4に設定
// 段落を追加し、番号付きリストスタイルを適用(レベル2)
paragraph = sec.addParagraph();
paragraph.appendText("List Item 1");
// レベル2を適用(インデックスは0から開始、1は第2レベルを表す)
paragraph.getListFormat().applyListRef(listRef, 1);
paragraph = sec.addParagraph();
paragraph.appendText("List Item 2");
// レベル3を適用
paragraph.getListFormat().applyListRef(listRef, 2);
paragraph = sec.addParagraph();
paragraph.appendText("List Item 3");
// レベル2を適用
paragraph.getListFormat().applyListRef(listRef, 1);
paragraph = sec.addParagraph();
paragraph.appendText("List Item 4");
// レベル3を適用
paragraph.getListFormat().applyListRef(listRef, 2);
document.saveToFile(outputFile, FileFormat.Docx);
document.close(); |
| 新機能 | - | 単レベルリストを迅速に作成するため、ListCollection に addSingleLevelList(ListTemplate listTemplate) メソッドを追加しました。
Document document = new Document();
Section sec = document.addSection();
Paragraph paragraph = sec.addParagraph();
// アラビア数字の番号付きリストテンプレートを作成(例:「1.」「2.」…)
ListTemplate template = ListTemplate.Number_Arabic_Dot;
// addSingleLevelListを使用して単レベルリスト参照を作成
ListDefinitionReference listRef = document.getListReferences().addSingleLevelList(template);
int levelcount = listRef.getLevels().getCount();// レベル数を確認
boolean res=listRef.isMultiLevel();
// 最初のリスト項目を追加
paragraph = sec.addParagraph();
paragraph.appendText("List Item 1");
paragraph.getListFormat().applyListRef(listRef, 0);
paragraph = sec.addParagraph();
paragraph.appendText("List Item 2");
paragraph.getListFormat().applyListRef(listRef, 0);
document.saveToFile(outputFile, FileFormat.Docx);
document.close(); |
| 新機能 | - | 2 つの ListLevel オブジェクトが等しいかを比較する ListLevel.equals(ListLevel level) メソッドを追加しました。 |
| 新機能 | - | 画像箇条書きの作成、取得、削除用メソッドを追加しました。
Document document = new Document();
Section sec = document.addSection();
Paragraph paragraph = sec.addParagraph();
// カスタムの箇条書きリストスタイルを作成
ListStyle listStyle = document.getStyles().add(ListType.Bulleted, "bulletList");
// このリストスタイルのレベル設定を取得
ListLevelCollection Levels = listStyle.getListRef().getLevels();
// レベル1の画像箇条書きを設定
Levels.get(0).createPictureBullet();
Levels.get(0).getPictureBullet().loadImage(imag_Path_1);
// レベル2の画像箇条書きを設定
Levels.get(1).createPictureBullet();
Levels.get(1).getPictureBullet().loadImage(imag_Path_2);
// 最初のリスト項目を追加
paragraph = sec.addParagraph();
paragraph.appendText("List Item 1");
paragraph.getListFormat().applyStyle(listStyle);
// 2番目のリスト項目を追加
paragraph = sec.addParagraph();
paragraph.appendText("List Item 1.1");
paragraph.getListFormat().applyStyle(listStyle);
paragraph.getListFormat().setListLevelNumber(1);
// レベル1の画像箇条書きを削除
Levels.get(0).deletePictureBullet();
document.saveToFile(outputFile, FileFormat.Docx);
document.close(); |
| 新機能 | SPIREDOC-11582 | スタイルを削除するための removeSelf() メソッドを追加しました。
document.getStyles().get("style1").removeSelf(); |
| 新機能 | SPIREDOC-11583 | テーブルへのカスタムスタイルの適用をサポートしました。
Document doc = new Document();
Section section = doc.addSection();
TableStyle tableStyle = (TableStyle) doc.getStyles().add(StyleType.Table_Style, "TestTableStyle1");
tableStyle.setHorizontalAlignment(RowAlignment.Center);
tableStyle.getBorders().setColor(Color.BLUE);
tableStyle.getBorders().setBorderType(BorderStyle.Single);
Table table = section.addTable();
table.resetCells(1, 1);
table.getRows().get(0).getCells().get(0).addParagraph().appendText("Aligned to the center of the page");
table.setPreferredWidth(PreferredWidth.fromPoints(300));
table.applyStyle(tableStyle);
// table.getFormat().setStyle(tableStyle);
doc.saveToFile(outputDocxFile, FileFormat.Docx); |
| 新機能 | SPIREDOC-11748 | テンプレートドキュメントからのスタイルコピーをサポートしました。
doc.copyStylesFromTemplate(inputFile_2); // Accepts file path as String doc.copyStylesFromTemplate(doc2); // Accepts another Document object |
| 不具合修正 | SPIREDOC-10843 | 構造化ドキュメントの処理時にアプリケーションがフリーズする不具合を修正しました。 |
| 不具合修正 | SPIREDOC-11439 | 目次の比較に失敗する不具合を修正しました。 |
| 不具合修正 | SPIREDOC-11532 | Word を PDF に変換する際にアプリケーションがフリーズする不具合を修正しました。 |
| 不具合修正 | SPIREDOC-11605 SPIREDOC-11712 | Word を PDF に変換する際に表レイアウトが不正になる不具合を修正しました。 |
| 不具合修正 | SPIREDOC-11629 | Word を PDF に変換する際にテキストの位置が不正になる不具合を修正しました。 |
| 不具合修正 | SPIREDOC-11699 | WPS ルールに準拠した状態で Word を PDF に変換する際、テキストの改行が不正になる不具合を修正しました。 |
| 不具合修正 | SPIREDOC-11709 | MHT を PDF に変換する際にアプリケーションがフリーズする不具合を修正しました。 |
| 不具合修正 | SPIREDOC-11741 | Avira Free Security Suite がspire.doc.jarをウイルスと誤検知する不具合を修正しました。 |
| 不具合修正 | SPIREDOC-10278 | Word から PDF への変換時に、段落のインデントが正しくない問題を修正しました。 |
| 不具合修正 | SPIREDOC-11142 | Word から PDF への変換時に、テーブル内の画像レイアウトが正しくレンダリングされない問題を修正しました。 |
| 不具合修正 | SPIREDOC-11688 | Word から PDF への変換時に、WPS Office 特有のフォーマット規則が正しく適用されない問題を修正しました。 |
| 不具合修正 | SPIREDOC-11714 | Word から Markdown への変換時に NullPointerException が発生する問題を修正しました。 |
| 不具合修正 | SPIREDOC-11718 | Word から PDF への変換時に NullPointerException が発生する問題を修正しました。 |
| 不具合修正 | SPIREDOC-11734 | 目次(TOC)フィールドの更新時にアプリケーションがハングアップする問題を修正しました。 |
| 不具合修正 | SPIREDOC-11735 | ページ番号フィールドが正しく更新されない問題を修正しました。 |
| 不具合修正 | SPIREDOC-11757 | Word から PDF への変換時に IllegalStateException ("Unexpected ST_TrueFalse value") が発生する問題を修正しました。 |
Spire.XLS for Java
| カテゴリー | ID | 説明 |
| 新機能 | SPIREXLS-5237 | 数式の挿入・取得・更新に対応を追加。
// 数式の挿入
sheet.getEquations().addEquation(11, 0, 100, 100, "x_{1}^{2}");
// 数式の取得
String mathML = sheet.getEquations().get(0).exportMathML();
String latex = sheet.getEquations().get(0).exportLaTeX();
// 数式の更新
IXlsEquation equation1 = sheet.getEquations().get(0);
equation1.updateByLaTeXText("\\begin{pmatrix} \r\n 1 & 0 \\\\ \r\n 0 & 1 \r\n \\end{pmatrix} \r\n \\left(x-1\\right)\\left(x+3\\right)"); |
| 新機能 | SPIREXLS-6047 | F.INV 関数に対応を追加。
worksheet.getCellRange("A2").setFormula("=F.INV(0.99, 100, 200)"); |
| 新機能 | SPIREXLS-6048 | T.INV.2T 関数に対応を追加。
worksheet.getCellRange("A2").setFormula("=T.INV.2T(0.05, 10)"); |
| 不具合修正 | SPIREXLS-6045 | HTML を Excel に変換する際に「ArrayIndexOutOfBoundsException」がスローされる問題を修正。 |
| 不具合修正 | SPIREXLS-6053 | 数式の計算時間が過度に長くなる問題を修正。 |
| 不具合修正 | SPIREXLS-6056 | XLSX を XLS に変換する際に数式に予期せぬ青色の背景が表示される問題を修正。 |
| 不具合修正 | SPIREXLS-6058 | Excel を PDF に変換する際に出力結果に不要な罫線が表示される問題を修正。 |
| 不具合修正 | SPIREXLS-6062 | XLS ファイルを XLSX 形式で保存する際に「NullPointerException」が発生する問題を修正。 |
| 不具合修正 | SPIREXLS-6064 | 埋め込み画像を含むセルの内容を他の Excel ブックにコピーできない問題を修正。 |
| 不具合修正 | SPIREXLS-6066 | Excel を PDF に変換する際に「NullPointerException」がスローされる問題を修正。 |
| 不具合修正 | SPIREXLS-6067 | ファイルハンドルの解放漏れにより、Excel に画像を挿入後にローカルの画像ファイルを削除できない問題を修正。 |
Spire.PDF for Java
| カテゴリー | ID | 説明 |
| 新機能 | SPIREPDF-7880 | PDF 比較結果をファイルストリームに保存する機能を追加しました。
// Create a new PdfDocument object 'pdf1' to work with the first PDF file
PdfDocument pdf1 = new PdfDocument();
// Load the first PDF file from the specified path
pdf1.loadFromFile("ComparePdfDocument_1.pdf");
// Create a new PdfDocument object 'pdf2' to work with the second PDF file
PdfDocument pdf2 = new PdfDocument();
// Load the second PDF file from the specified path
pdf2.loadFromFile("ComparePdfDocument_2.pdf");
// Create a PdfComparer object 'compare' with 'pdf1' and 'pdf2' as parameters for comparison
PdfComparer compare = new PdfComparer(pdf1, pdf2);
// Set the page ranges to be compared using the options of the comparer
compare.getOptions().setPageRanges(0, pdf1.getPages().getCount() - 1, 0, pdf2.getPages().getCount() - 1);
String result = "output.pdf";
File outFile = new File(result);
// Create an output stream to write the document to the output file
OutputStream outputStream = new FileOutputStream(outFile);
// Compare the PDF documents and save
compare.compare(outputStream);
// Dispose of system resources associated with 'pdf1'
pdf1.dispose();
// Dispose of system resources associated with 'pdf2'
pdf2.dispose(); |
| 不具合修正 | SPIREPDF-6373 | PDF を画像へ変換する際のパフォーマンスを最適化しました。 |
| 不具合修正 | SPIREPDF-6406 | OFD から PDF への変換時に発生する OutOfMemoryError を修正しました。 |
| 不具合修正 | SPIREPDF-7189 | PDF を Word に変換した結果を WPS で開いた際の表示品質を改善しました。 |
| 不具合修正 | SPIREPDF-7305 | PDF 印刷時に背景色や一部フォント効果が一致しない問題を修正しました。 |
| 不具合修正 | SPIREPDF-7407 | PDF からフロー型 Word への変換におけるレイアウト精度を向上させました。 |
| 不具合修正 | SPIREPDF-7560 | マルチスレッド環境における PdfTrueTypeFont のエラーを修正しました。 |
| 不具合修正 | SPIREPDF-7666 | 「Yu Mincho」フォント使用時に内容が正しく生成されない問題を修正しました。 |
| 不具合修正 | SPIREPDF-7687 | PDF から PDF/A-1A への変換時に発生するテキストのずれを修正しました。 |
| 不具合修正 | SPIREPDF-7782 | 表抽出結果に余分な空白が含まれる問題を修正しました。 |
| 不具合修正 | SPIREPDF-7820 | PDF を画像に変換する際に数式が欠落する問題を修正しました。 |
| 不具合修正 | SPIREPDF-7869 | PDF から HTML への変換時にテキストが重なる問題を修正しました。 |
| 不具合修正 | SPIREPDF-7887 | PDF 読み込み時に発生する「structure is not valid」エラーを修正しました。 |
| 不具合修正 | SPIREPDF-7890 | テキスト透かし追加後の保存時に発生する ArrayIndexOutOfBoundsException を修正しました。 |
| 不具合修正 | SPIREPDF-7898 | SVG から PDF への変換時に内容が一致しない問題を修正しました。 |
| 不具合修正 | SPIREPDF-7910 | OFD から PDF への変換時に発生する文字列解析エラーを修正しました。 |
| 不具合修正 | SPIREPDF-7911 | OFD から PDF への変換結果が正しくない問題を修正しました。 |
Spire.Presentation for Java
| カテゴリー | ID | 説明 |
| 新機能 | - | 図形(Shape)からカスタムデータ(Customer Data)を読み取る機能を追加しました。
Presentation ppt = new Presentation(); ppt.loadFromFile(inputFile); List |
| 新機能 | - | オーディオのフェードイン(Fade In)およびフェードアウト(Fade Out)時間を設定する機能を追加しました。
Presentation ppt = new Presentation(); ppt.loadFromFile(inputFile); Rectangle2D.Double audioRect = new Rectangle2D.Double(220, 240, 80, 80); IAudio audio=ppt.getSlides().get(0).getShapes().appendAudioMedia(inputFile_1, audioRect); // Set the duration of the starting fade for 13s audio.setFadeInDuration(13000f); // Set the duration of the ending fade for 20s audio.setFadeOutDuration(20000f); ppt.saveToFile(outputFile, FileFormat.PPTX_2016); ppt.dispose(); |
| 新機能 | - | オーディオ再生範囲をトリミング(開始/終了時間を指定)できる機能を追加しました。
Presentation ppt = new Presentation(); ppt.loadFromFile(inputFile); Rectangle2D.Double audioRect = new Rectangle2D.Double(220, 240, 80, 80); IAudio audio=ppt.getSlides().get(0).getShapes().appendAudioMedia(inputFile_1, audioRect); // Set the start trimming time 8 seconds audio.setTrimFromStart(8000f); // Set the end trimming time 13 seconds audio.setTrimFromEnd(13000f); ppt.saveToFile(outputFile, FileFormat.PPTX_2016); ppt.dispose(); |
| 新機能 | - | 表(テーブル)の透明度を設定する機能を追加しました。
Presentation presentation = new Presentation();
presentation.loadFromFile("data/test.pptx");
Double[] widths = new Double[]{100d, 100d, 150d, 100d, 100d};
Double[] heights = new Double[]{15d, 15d, 15d, 15d, 15d, 15d, 15d, 15d, 15d, 15d, 15d, 15d, 15d};
// Add a table
ITable table = presentation.getSlides().get(0).getShapes().appendTable(
(float) presentation.getSlideSize().getSize().getWidth() / 2 - 275, 90, widths, heights);
// Set overall table background transparency to 50% (0.0 = opaque, 1.0 = fully transparent)
table.getFill().setTransparency(0.5f);
// Customize the fill color of the cell at row 0, column 0 to blue
table.get(0, 0).getFillFormat().setFillType(FillFormatType.SOLID);
table.get(0, 0).getFillFormat().getSolidColor().setColor(Color.BLUE);
presentation.saveToFile("result.pptx", FileFormat.PPTX_2016); |
| 新機能 | SPIREPPT-2349 SPIREPPT-2950 | 変換時に WEBP 形式の画像を解析する機能を追加しました。 |
| 不具合修正 | SPIREPPT-3035 | LaTeX 数式を追加した際に、「NullPointerException」が発生する場合がある問題を修正しました。 |
| 不具合修正 | SPIREPPT-3036 | spire.presentation.jar に対して Avira Security Suite がウイルスの誤検知を行う問題を修正しました。 |
| 不具合修正 | SPIREPPT-3069 | 「\dots」数式を追加すると NullPointerException が発生する問題を修正しました。 |
| 不具合修正 | SPIREPPT-3071 | PPT を PDF に変換する際に、内容が一致しない問題を修正しました。 |






