Spire.Office for Java 9.1.4を発表できることをうれしく思います。このリリースでは、このバージョンでは、Spire.PDF for Java により透かし描画の効率が向上し、Spire.Doc for Java により画像透かしを追加する新しい方法が追加され、Spire.Presentation for Java により PowerPoint から SVG 形式への変換速度が向上しました。さらに、多くの既知のバグも修正されました。詳細は以下の内容を読んでください。
ここで Spire.Office for Java 9.1.4をダウンロードする:
このリリースで行われた変更のリストは次のとおりです
Spire.PDF for Java
カテゴリー | ID | 説明 |
New feature | SPIREPDF-6454 | 透かしの描画効率も向上されました。 |
New feature | SPIREPDF-6459 | テキストを置換する機能を実現するための PdfTextReplacer インターフェースが追加されました。
PdfDocument pdf = new PdfDocument(); pdf.loadFromFile("sample.pdf"); PdfPageBase page = pdf.getPages().get(0); PdfTextReplacer replacer = new PdfTextReplacer(page); PdfTextReplaceOptions options= new PdfTextReplaceOptions(); options.setReplaceType(EnumSet.of(ReplaceActionType.WholeWord)); replacer.replaceText("www.google.com", "1234567"); pdf.saveToFile(outputFile); |
New feature | - | 画像の削除、画像の抽出、画像の置換、画像の圧縮の機能を実現する PdfImageHelper インターフェイスが追加されました。 キーコードスニペット: PdfImageHelper imageHelper = new PdfImageHelper(); PdfImageInfo[] imageInfoCollection= imageHelper.getImagesInfo(page); Delete image: imageHelper.deleteImage(imageInfoCollection[0]); Extract image: int index = 0; for (com.spire.pdf.utilities.PdfImageInfo img : imageInfoCollection) { BufferedImage image = img.getImage(); File output = new File(outputFile_Img + String.format("img_%d.png", index)); ImageIO.write(image, "PNG", output); index++; } 画像を置き換えます: PdfImage image = PdfImage.fromFile("ImgFiles/E-iceblue logo.png"); imageHelper.replaceImage(imageInfoCollection[i], image); Compress image: for (PdfPageBase page : (Iterable |
Bug | SPIREPDF-6468 | 文書を保存するときにプログラムが 「java.lang.StringIndexOutOfBoundsException 」をスローする問題が修正されました。 |
Bug | SPIREPDF-6484 | 複数のPDF文書に対して一括でテキストの置換を行い、保存した後に結果の文書が生成されない問題を修正しました。 |
Spire.XLS for Java
カテゴリー | ID | 説明 |
Bug | SPIREXLS-5020 | WPS ツールで印刷およびプレビューすると、保存された XLSX ドキュメントの余白が正しくないという問題が修正されました。 |
Bug | SPIREXLS-5037 | 塗りつぶし色のないセルで取得された塗りつぶし色の値が (0,0,0) になる問題が修正されました。 |
Bug | SPIREXLS-5047 | HTML を XLSX に変換するときにセルの境界線スタイルが失われる問題が修正されました。 |
Spire.Doc for Java
カテゴリー | ID | 説明 |
Adjustment | - | Spire.Pdf.jar への依存関係を削除しました。 |
Adjustment | - | ライセンスの適用方法を 「com.spire.doc.license.LicenseProvider.setLicenseKey(key) 」に変更しました。 |
Adjustment | - | 名前空間 com.spire.ms.Printing.* が com.spire.doc.printing.* に変更されました。 |
New feature | - | 次のメソッド、クラス、およびインターフェイスは非推奨になりました。
The "newEngine" parameter in the Document constructor no longer has any effect. The internal mechanism now defaults to using the new engine. The HeaderType enum. The GroupedShapeCollection class. The ShapeObjectTextCollection class. The MailMergeData interface. The EnumInterface interface. The public PictureWaterMark(InputStream inputeStream, boolean washout) constructor. The public PictureWaterMark(String filename, boolean washout) constructor. The downloadImage method in the Field class. The IDocOleObject interface. PointsConverter クラス |
New feature | - | TableCell クラスの getWidth() メソッドと setWidth() メソッドは非推奨となり、getCellWidth() メソッドと setCellWidth() メソッドに置き換えられました。 |
New feature | - | 以下の名前空間を変更します。
com.spire.license.LicenseProvider -> com.spire.doc.License.LicenseProvider |
New feature | - | 継承関係を変更します。「ShapeGroup implements ShapeObject」を「ShapeGroup implements ShapeBase」に変更します。 |
New feature | - | Documentの破棄時に、カスタムフォントに関連するデータも同時に破棄できるようになりました。
// カスタムフォントを設定する Document.setCustomFontsFolders(string filePath); // カスタムフォントを破棄する Document.clearCustomFontsFolders(); // キャッシュ内のメモリを占有しているシステム フォント キャッシュをクリアする Document.clearSystemFontCache(); Example code: Document doc = new Document(); doc.loadFromFile("inputFile.docx"); doc.setCustomFontsFolders(@"d:\Fonts"); doc.saveToFile("output.pdf", FileFormat.PDF); doc.close(); doc.dispose(); |
New feature | - | 次の列挙型クラスを変更します。
com.spire.doc.FileFormat.WPS -> com.spire.doc.FileFormat.Wps com.spire.doc.FileFormat.WPT -> com.spire.doc.FileFormat.Wpt ComparisonLevel -> TextDiffMode |
New feature | - | 以下のメソッドを変更します。
ComparisonLevel getLevel() -> getTextCompareLevel() setLevel(ComparisonLevel value) -> setTextCompareLevel(TextDiffMode) IsPasswordProtect() -> isEncrypted() getFillEfects() -> getFillEffects() |
New feature | - | 画像の透かしを追加するメソッドを追加しました。
File imageFile = new File("data/E-iceblue.png"); BufferedImage bufferedImage = ImageIO.read(imageFile); // Create a new instance of the PictureWatermark class with the input BufferedImage, and set the scaling factor for the watermark image PictureWatermark picture = new PictureWatermark(bufferedImage,false); // Or another way to create PictureWatermark // PictureWatermark picture = new PictureWatermark(); // picture.setPicture(bufferedImage); // picture.isWashout(false); // Set the scaling factor for the watermark image picture.setScaling(250); // Set the watermark to be applied to the document document.setWatermark(picture); |
New feature | - | Shape は、グラフィックスの塗りつぶしを操作するための getFill() メソッドを公開します。setFillColor(null) メソッドの代わりに getFill().setOn(false) を使用します。 |
New feature | - | グラフの追加のサポートが追加されました。
// Document の新しいインスタンスを作成します Document document = new Document(); // ドキュメントにセクションを追加します Section section = document.addSection(); // セクションに段落を追加し、そこにテキストを追加します section.addParagraph().appendText("Line chart."); // セクションに新しい段落を追加します Paragraph newPara = section.addParagraph(); // 指定された幅と高さの折れ線グラフの形状を段落に追加します ShapeObject shape = newPara.appendChart(ChartType.Line, 500, 300); // 図形からチャートオブジェクトを取得します Chart chart = shape.getChart(); // チャートのタイトルを取得します ChartTitle title = chart.getTitle(); // グラフのタイトルのテキストを設定します title.setText("My Chart"); // チャート内の既存の系列をクリアします ChartSeriesCollection seriesColl = chart.getSeries(); seriesColl.clear(); // カテゴリ (X 軸の値) を定義します String[] categories = { "C1", "C2", "C3", "C4", "C5", "C6" }; // 指定されたカテゴリと Y 軸値を持つ 2 つの系列をグラフに追加します seriesColl.add("AW Series 1", categories, new double[] { 1, 2, 2.5, 4, 5, 6 }); seriesColl.add("AW Series 2", categories, new double[] { 2, 3, 3.5, 6, 6.5, 7 }); // ドキュメントを Docx 形式でファイルに保存します document.saveToFile("AppendLineChart.docx", FileFormat.Docx_2016); // ドキュメントオブジェクトを使い終わったら破棄します document.dispose(); |
New feature | - | ページのコンテンツを取得するために、ページ モデル Spire.Doc.Pages が提供されています。
// Document の新しいインスタンスを作成します Document doc = new Document(); // 指定されたファイルからドキュメントを読み込みます doc.loadFromFile(inputFile); // ロードされたドキュメントを使用してFixedLayoutDocumentオブジェクトを作成します FixedLayoutDocument layoutDoc = new FixedLayoutDocument(doc); // 抽出されたテキストを保存する StringBuilder を作成します StringBuilder stringBuilder = new StringBuilder(); // 最初のページの最初の行を取得し、StringBuilder に追加します FixedLayoutLine line = layoutDoc.getPages().get(0).getColumns().get(0).getLines().get(0); stringBuilder.append("Line: " + line.getText() + "\r\n"); // その行に関連付けられた元の段落を取得し、そのテキストを StringBuilder に追加します Paragraph para = line.getParagraph(); stringBuilder.append("Paragraph text: " + para.getText() + "\r\n"); // ヘッダーとフッターを含む最初のページのすべてのテキストを取得し、StringBuilder に追加します String pageText = layoutDoc.getPages().get(0).getText(); stringBuilder.append(pageText + "\r\n"); // ドキュメントの各ページを反復処理し、各ページの行数を出力します for (Object obj : layoutDoc.getPages()) { FixedLayoutPage page = (FixedLayoutPage) obj; LayoutCollection |
New feature | - | SVG グラフィックの追加のサポートが追加されました。
//新しい Document オブジェクトを作成します Document document = new Document(); //新しいセクションをドキュメントに追加します Section section = document.addSection(); //新しい段落をセクションに追加します Paragraph paragraph = section.addParagraph(); //画像 (SVG) を段落に追加します paragraph.appendPicture(inputSvg); //ドキュメントを指定された出力ファイルに保存します document.saveToFile(outputFile, FileFormat.Docx_2013); //ドキュメントを閉じます document.dispose(); |
Bug | SPIREDOC-8618 | DocをDocxに変換する際に、「Error loading file: Unsupported file format」というエラーが発生する問題を修正しました。 |
Bug | SPIREDOC-8694 | WordをPDFに変換する際のシェイプの位置ずれの問題を修正しました。 |
Bug | SPIREDOC-8779 | WordをPDFに変換する際に「java.lang.OutOfMemoryError」というエラーが発生する問題を修正しました。 |
Bug | SPIREDOC-8981 | WordをPDFに変換する際に画像に余分な枠が表示される問題を修正しました。 |
Bug | SPIREDOC-9321 | WordをPDFに変換する際のテーブルの幅が正しく表示されない問題を修正しました。 |
Bug | SPIREDOC-9426 SPIREDOC-9427 SPIREDOC-9953 SPIREDOC-9964 SPIREDOC-10131 |
WordをPDFに変換する際のページ区切りが正しくない問題を修正しました。 |
Bug | SPIREDOC-9465 | DocをXMLに変換する際に内容が失われる問題を修正しました。 |
Bug | SPIREDOC-9551 | ドキュメントデータをメモリストリームに保存する際にプログラムが停止する問題を修正しました。 |
Bug | SPIREDOC-9633 | WordをPDFに変換する際の文字化けの問題を修正しました。 |
Bug | SPIREDOC-9695 | WordをPDFに変換する際に「This is not a structured storage file.」というエラーが発生する問題を修正しました。 |
Bug | SPIREDOC-9874 | WordをPDFに変換する際のテーブルスタイルが正しくない問題を修正しました。 |
Bug | SPIREDOC-9917 SPIREDOC-9937 |
WordをPDFに変換する際に「java.lang.AssertionError」というエラーが発生する問題を修正しました。 |
Bug | SPIREDOC-9951 | WordをPDFに変換する際に内容が失われる問題を修正しました。 |
Bug | SPIREDOC-9968 | 新しい行の追加や行の結合後のテーブル形式が正しくない問題を修正しました。 |
Bug | SPIREDOC-9984 | WordをPDFに変換する際に「java.lang.NullPointerException」というエラーが発生する問題を修正しました。 |
Bug | SPIREDOC-10041 | WordをPDFに変換する際に「java.lang.ClassCastException」というエラーが発生する問題を修正しました。 |
Bug | SPIREDOC-10075 | 文書の結合後に数式が編集できなくなる問題を修正しました。 |
Bug | SPIREDOC-10076 | WordをPDFに変換する際のグラフのデータ形式が正しくない問題を修正しました。 |
Bug | SPIREDOC-10115 | Wordドキュメントのロード時に「java.lang.NullPointerException」というエラーが発生する問題を修正しました。 |
Bug | SPIREDOC-10125 | 文書のパスワード保護設定後、一部の内容に黒い背景が表示される問題を修正しました。 |
Bug | SPIREDOC-10136 | セルの分割後にテーブルが乱れる問題を修正しました。 |
Spire.Presentation for Java
カテゴリー | ID | 説明 |
New feature | SPIREPPT-2395 | PPTからSVGへの変換速度が向上されました。 |
New feature | SPIREPPT-2400 | パスワード付きのストリーム ファイルを読み取るメソッドが追加されました。
presentation.loadFromStream(inputStream, FileFormat.AUTO,"password"); |
New feature | SPIREPPT-2405 | 座標による不規則多角形作成機能が追加されました。
Presentation ppt = new Presentation(); ISlide slide = ppt.getSlides().get(0); List<Point2D> points = new ArrayList<>(); points.add(new Point2D.Float(50f, 50f)); points.add(new Point2D.Float(50f, 150f)); points.add(new Point2D.Float(60f, 200f)); points.add(new Point2D.Float(200f, 200f)); points.add(new Point2D.Float(220f, 150f)); points.add(new Point2D.Float(150f, 90f)); points.add(new Point2D.Float(50f, 50f)); IAutoShape autoShape = slide.getShapes().appendFreeformShape(points); autoShape.getFill().setFillType(FillFormatType.NONE); ppt.saveToFile("out.pptx", FileFormat.PPTX_2013); ppt.dispose(); |
New feature | SPIREPPT-2406 | 2点による直線描画機能が追加されました。
Presentation ppt = new Presentation(); ppt.getSlides().get(0).getShapes().appendShape(ShapeType.LINE, new Point2D.Float(50, 70), new Point2D.Float(150, 120)); ppt.saveToFile( "result.pptx ,FileFormat.PPIX_2013), ppt.dispose(). |