Spire.Office for Java

ニュース&リリース

2024-03-28

Spire.Office for Java 9.3.1 のリリースのお知らせ

Spire.Office for Java 9.3.1 のリリースをお知らせいたします。このバージョンには、いくつかの素晴らしい機能が含まれています。たとえば、Spire.PDF for Java では、PdfTextReplacer クラスが追加され、PDF のテキストの置換と InkAnnotation の追加がサポートされます。また、Spire.XLS for Java ではAI機能がサポートされ、Spire.Presentation for Java では段落に数式を追加する機能や形状の表示色を取得する機能がサポートされます。さらに、このバージョンでは多くの既知の問題が修正されています。詳細は以下に記載されています。

Spire.Office for Java 9.3.1 をダウンロードするには、リンクをクリックしてください

このリリースで行われた変更のリストは次のとおりです

Spire.Doc for Java

カテゴリー ID 説明
Improvement SPIREDOC-10325 Word を OFD に変換した後の結果ファイルのサイズを最適化しました。
New feature - MergeImageFieldEventArgs イベントに setImageLink() を追加して、差し込み印刷画像へのハイパーリンクの追加をサポートします。
Document document = new Document();
 document.loadFromFile(inputFile);
 String[] fieldNames = new String[]{"ImageFile"};
 String[] fieldValues = new String[]{inputFile_img};
 document.getMailMerge().MergeImageField = new MergeImageFieldEventHandler() {
     @Override
     public void invoke(Object sender, MergeImageFieldEventArgs args) {
         mailMerge_MergeImageField(sender, args);
     }
 };
 document.getMailMerge().execute(fieldNames, fieldValues);
 document.saveToFile(outputFile, FileFormat.Docx);
private static void mailMerge_MergeImageField(Object sender, MergeImageFieldEventArgs field) {
    String filePath = field.getImageFileName();
    if (filePath != null && !"".equals(filePath)) {
        try {
            field.setImage(filePath);
            field.setImageLink("https://www.baidu.com/");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
New feature SPIREDOC-9369 getFieldOptions() メソッドを追加して、フィールド更新時のフィールド プロパティの設定をサポートします。
document.getFieldOptions().setCultureSource(FieldCultureSource.CurrentThread);
New feature - hasDigitalSignature() メソッドを追加して、ドキュメントにデジタル署名があるかどうかの判断をサポートします。
Document.hasDigitalSignature("filepath");
New feature SPIREDOC-9455 integrateFontTableTo メソッドを追加して、ソースドキュメントからターゲットドキュメントへのFonttableデータのコピーをサポートします。
sourceDoc.integrateFontTableTo(Document destDoc);
New feature SPIREDOC-9869 HtmlUrlLoadEvent イベントを追加して、HTML ファイルをロードするときにファイル内の URL をロードする制御をサポートします。
public static void main(String[] args) {
    Document document = new Document();
    document.HtmlUrlLoadEvent = new MyDownloadEvent();
    document.loadFromFile(inputFile, FileFormat.Html, XHTMLValidationType.None);
    document.saveToFile(outputFile, FileFormat.PDF);
}
static class MyDownloadEvent extends HtmlUrlLoadHandler {
    @Override
    public void invoke(Object o, HtmlUrlLoadEventArgs htmlUrlLoadEventArgs) {
        try {
            byte[] bytes = downloadBytesFromURL(htmlUrlLoadEventArgs.getUrl());
            htmlUrlLoadEventArgs.setDataBytes(bytes);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
public static byte[] downloadBytesFromURL(String urlString) throws Exception {
    URL url = new URL(urlString);
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setRequestMethod("GET");
    connection.setConnectTimeout(5000);
    connection.setReadTimeout(5000);
    int responseCode = connection.getResponseCode();
    if (responseCode == HttpURLConnection.HTTP_OK) {
        InputStream inputStream = connection.getInputStream();
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int bytesRead;
        while ((bytesRead = inputStream.read(buffer)) != -1) {
            outputStream.write(buffer, 0, bytesRead);
        }
        outputStream.close();
        return outputStream.toByteArray();
    } else {
        throw new Exception("Failed to download content. Response code: " + responseCode);
    }
}
New feature - setCustomFonts(InputStream[] fontStreamList) メソッドを追加して、ストリームによるカスタム フォントの設定をサポートします。
document.setCustomFonts(InputStream[] fontStreamList);
New feature - clearCustomFontsFolders() メソッドを新しい clearCustomFonts() メソッドに置き換えます。
document.clearCustomFonts();
New feature - setGlobalCustomFontsFolders(InputStream[] fontStreamList) メソッドを新しい setGlobalCustomFonts(InputStream[] fontStreamList) メソッドに置き換えます。
Document.setGlobalCustomFonts(InputStream[] fontStreamList);
New feature - clearGlobalCustomFontsFolders() メソッドを新しい clearGlobalCustomFonts() メソッドに置き換えます。
Document.clearGlobalCustomFonts();

Spire.XLS for Java

カテゴリー ID 説明
New feature - AIの機能をサポートし、ドキュメントの計算、範囲の結合、画像の生成、ファイルのアップロード、質問と翻訳をAIの支援で行うことができます。
Bug SPIREXLS-5096 Excelドキュメントを解析する際にメモリ消費量が高くなる問題を最適化します。
Bug SPIREXLS-5136 直接ロードと保存後にExcelドキュメントを開く際にエラーが報告される問題を修正します。
Bug SPIREXLS-5138 ワークシートテーブルをコピーした後に形状が失われる問題を修正します。

Spire.PDF for Java

カテゴリー ID 説明
New feature SPIREPDF-4354 PdfTextReplacerクラスを追加して、PDFのテキストを置換する機能をサポートします。
PdfDocument doc = new PdfDocument();
doc.loadFromFile("Input.pdf");
PdfPageBase page = doc.getPages().get(0);
PdfTextReplacer textReplacer = new PdfTextReplacer(page);
textReplacer.replaceAllText("old", "NEW");
doc.saveToFile("output.pdf");
doc.dispose();
New feature SPIREPDF-6591 PDFにInkAnnotationを追加する機能をサポートします。
PdfDocument doc = new PdfDocument();
PdfPageBase pdfPage = doc.getPages().add();
List<int[]> inkList = new ArrayList<>();
int[] intPoints = new int[]
		{
				100,800,
				200,800,
				200,700
		};
inkList.add(intPoints);
PdfInkAnnotation ia = new PdfInkAnnotation(inkList);
ia.setColor(new PdfRGBColor(Color.RED));
ia.getBorder().setWidth(12);
ia.setText("e-iceblue");
((PdfNewPage) pdfPage).getAnnotations().add(ia);
doc.saveToFile("inkannotation.pdf");
Bug SPIREPDF-6606 PDF署名の時間をシステムのローカル時間に合わせて最適化します。
Bug SPIREPDF-6548 pdfDocument.getConformance()を使用して取得したPDFの種類が正しくない問題を修正します。
Bug SPIREPDF-6554 setRowSpan()を2回使用すると"StackOverflow"例外が発生する問題を修正します。
Bug SPIREPDF-6581 OFDをPDFに変換した後にコンテンツが失われる問題を修正します。

Spire.Presentation for Java

カテゴリー ID 説明
New feature SPIREPPT-2210 段落に数式を追加する機能をサポートします。
Presentation ppt = new Presentation();
String latexMathCode="x^{2}+\\sqrt{x^{2}+1=2}";
IAutoShape shape=ppt.getSlides().get(0).getShapes().appendShape(ShapeType.RECTANGLE,new Rectangle2D.Float(30,100,400,200));
shape.getTextFrame().getParagraphs().clear();

ParagraphEx p=new ParagraphEx();
shape.getTextFrame().getParagraphs().append(p);

PortionEx portionEx=new PortionEx("Test");
p.getTextRanges().append(portionEx);
p.appendFromLatexMathCode(latexMathCode);
PortionEx portionEx2=new PortionEx("Hello");
p.getTextRanges().append(portionEx2);
ppt.saveToFile(outputFile, FileFormat.AUTO);
New feature SPIREPPT-2422 図形の表示色を取得する機能をサポートします。
Presentation ppt = new Presentation();
ppt.loadFromFile("input.pptx");
IAutoShape shape = (IAutoShape)ppt.getSlides().get(0).getShapes().get(0);
System.out.println(shape.getDisplayFill().getFillType().getName());
System.out.println(shape.getDisplayFill().getSolidColor().getColor());
Bug SPIREPPT-2456 ドキュメントをマージする際にアプリケーションが"DocumentEditException"をスローする問題を修正します。