チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

Koohji

Koohji

Spire.Office for Java 8.1.2のリリースを発表できることをうれしく思います。今回のアップデートには、いくつかの新機能が含まれています。Spire.Doc for Javaはコンテンツコントロールの「コンテンツが編集された後にコンテンツコントロールを削除する」機能の設定をサポートしました。Spire.PDF for Javaは、PDFドキュメントを圧縮する方法が追加されました。Spire.XLS for JavaはFILTER関数をサポートしました。Spire.Presentation for Javaはツリーマップ、サンバースト、ヒストグラム、箱ひげ図、ウォーターフォール、パレート図、じょうごなどのグラフの種類をサポートしました。さらに、多くの既知のバグが正常に修正されました。詳細は以下の内容を読んでください。

ここで Spire.Office for Java 8.1.2をダウンロードする:

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

Spire.Doc for Java

カテゴリー ID 説明
New feature SPIREDOC-8961 コンテンツコントロールの「コンテンツが編集された後にコンテンツコントロールを削除する」機能の設定をサポートしました。
Document doc = new Document();
doc.loadFromFile("1.docx");
        StructureTags structureTags = GetAllTags(doc);
List tagInlines = structureTags.getM_tagInlines();
        for (int i = 0; i<tagInlines.size(); i++)
        {
            StructureDocumentTagInline std = tagInlines.get(i);
std.getSDTProperties().isTemporary(true);
        }

        List<StructureDocumentTag> tags = structureTags.getM_tags();
        for (int i = 0; i<tags.size(); i++) {

            StructureDocumentTag std = tags.get(i);
std.getSDTProperties().isTemporary(true);
        }
        List<StructureDocumentTagRow> rowtags = structureTags.getM_rowtags();
        for (int i = 0; i<rowtags.size(); i++) {
            StructureDocumentTagRow std = rowtags.get(i);
std.getSDTProperties().isTemporary(true);
        }
        List<StructureDocumentTagCell> celltags = structureTags.getM_celltags();
        for (int i = 0; i<celltags.size(); i++) {
            StructureDocumentTagCell std = celltags.get(i);
std.getSDTProperties().isTemporary(true);
        }
        doc.saveToFile("tags.docx",FileFormat.Docx_2013);
Bug SPIREDOC-8538 WordをPDFに変換した後に表の枠線が失われていた問題が修正されました。
Bug SPIREDOC-8641 ドキュメントをロードする際に、アプリケーションが「Value(11)does not exist in the<CellAlign>enumeration」をスローする問題が修正されました。
Bug SPIREDOC-8689 mavenからspringbootプロジェクトでspire.doc.jarをインポートする際に、アプリケーションが「java.lang.IllegalArgumentException:No enum constant com.spire.doc.packages.sprzny.spr」をスローする問題が修正されました。
Bug SPIREDOC-8728 テキストボックスの取得に失敗した問題が修正されました。
Bug SPIREDOC-8757 HTMLをWordに変換した後に、表の先頭部分の背景色が失われていた問題が修正されました。
Bug SPIREDOC-8771 作成した参照フィールドの自動更新に失敗した問題が修正されました。
Bug SPIREDOC-8783 RTFをWordに変換した文字化けの問題が修正されました。
Bug SPIREDOC-8784 テキスト透かしを追加した後にドキュメントが開かなくなった問題が修正されました。
Bug SPIREDOC-8794 VerticalAlignment.Topの設定が無効になっていた問題が修正されました。
Bug SPIREDOC-8798 ドキュメントをロード時に、アプリケーションがハングする問題が修正されました。
Bug SPIREDOC-8801 docをdocxに変換した後に、アプリケーションが「Value cannot be null」をスローする問題が修正されました。
Bug SPIREDOC-8802 ドキュメントをマージすると、アプリケーションが「An element with the same key already exists in the dictionary」をスローする問題が修正されました。
Bug SPIREDOC-8829
SPIREDOC-8837
WordをPDFに変換した後、アプリケーションが「ArithmeticException」をスローする問題が修正されました。
Bug SPIREDOC-8846 WordをPDFに変換した後、数字番号の等級が正しくない問題が修正されました。
Bug SPIREDOC-8863 取得したリストのテキストが正しくない問題が修正されました。
Bug SPIREDOC-8871 取得したハイパーリンクアドレスの不完全な問題が修正されました。
Bug SPIREDOC-8883 WordをHTMLに変換した後の空白が失われていた問題が修正されました。
Bug SPIREDOC-8892 WordをPDFに変換すると数字番号の後ろに背景色が多くなる問題が修正されました。
Bug SPIREDOC-8897 WordをPDFに変換した後のテキストボックスの枠線スタイルが正しくない問題が修正されました。
Bug SPIREDOC-8899 html文字列を追加すると、アプリケーションが「Parameter'emSize'0.0 is invalid」をスローする問題が修正されました。
Bug SPIREDOC-8901 ブックマークの内容を置き換える際にアプリケーションが「NullPointerException」をスローする問題が修正されました。
Bug SPIREDOC-8931 ブックマークの内容を置き換えると、ヘッダーの背景スタイルが失われていた問題が修正されました。

Spire.PDF for Java

カテゴリー ID 説明
New feature - PDFドキュメントを圧縮する方法が追加されました。
PdfCompressor compressor = new PdfCompressor(fileName); 
compressor.compressToFile(outputName)
Bug SPIREPDF-5667 ドキュメントをマージすると、アプリケーションが「com.spire.pdf.packages.sprnsn cannot be cast to com.spire.pdf.packages.sprvqe」をスローする問題が修正されました。
Bug SPIREPDF-5682 PDFをPDFAに変換した後にフォームの内容が失われていた問題が修正されました。

Spire.XLS for Java

カテゴリー ID 説明
New feature SPIREXLS-4318 FILTER関数をサポートしました。
Bug SPIREXLS-4321 centos 7でExcelをPDFに変換した後にデータが正しくない問題が修正されました。
Bug SPIREXLS-4324 ExcelをPDFに変換した後に改ページが正しくない問題が修正されました。
Bug SPIREXLS-4368 ExcelをPDFに変換した後にテキストの位置が変更 する問題が修正されました。
Bug SPIREXLS-4377 ExcelをPDFに変換した後に日付フォーマットが正しくない問題が修正されました。
Bug SPIREXLS-4397 sheet1.copyFrom(sheet2) を使用してコンテンツをコピーしたときに生成されたドキュメントが開かなくなる問題も修正されました。

Spire.Presentation for Java

カテゴリー ID 説明
New feature - ツリーマップ、サンバースト、ヒストグラム、箱ひげ図、ウォーターフォール、パレート図、じょうごなどのグラフの種類をサポートしました。

Spire.XLS for Java 13.1.3のリリースを発表できることを嬉しく思います。このバージョンはFILTER関数をサポートし、ExcelからPDFへの変換機能も強化されました。sheet1.copyFrom(sheet2) を使用してコンテンツをコピーしたときに生成されたドキュメントが開かなくなるなど、既知の問題も修正されました。詳細は以下の内容を読んでください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
New feature SPIREXLS-4318 FILTER関数をサポートしました。
Bug SPIREXLS-4321 centos 7でExcelをPDFに変換した後にデータが正しくない問題が修正されました。
Bug SPIREXLS-4324 ExcelをPDFに変換した後に改ページが正しくない問題が修正されました。
Bug SPIREXLS-4368 ExcelをPDFに変換した後にテキストの位置が変更 する問題が修正されました。
Bug SPIREXLS-4377 ExcelをPDFに変換した後に日付フォーマットが正しくない問題が修正されました。
Bug SPIREXLS-4397 sheet1.copyFrom(sheet2) を使用してコンテンツをコピーしたときに生成されたドキュメントが開かなくなる問題も修正されました。
ここで Spire.XLS for Java13.1.3をダウンロードする

リストは、情報を整理するのに最適な方法です。テキストの塊と比較すると、通常、リストから重要なポイントを特定することは容易です。PDF のリストには、一般に、順序付きリストと順序なしリストの2つのタイプがあります。また、ネストされたリストで、これらの2つのタイプを混在させることができます。この記事では、Spire.PDF for Java を使用して、PDF ドキュメントに様々な種類のリストを作成する方法について説明します。

Spire.PDF for Java は、順序付きリストと順序なしリストを表現するために、それぞれ PdfSortedList クラスと PdfUnorderedList クラスを提供します。リストの内容、インデント、フォント、マーカーのスタイルやその他の属性を設定するには、これら2つのクラスの下のメソッドを使用します。次の表は、このチュートリアルに関係する主要なクラスとメソッドの一覧です。

クラス・メソッド 説明
PdfSortedList クラス PDFドキュメント内の順序付きリストを表します。
PdfUnorderedList クラス PDFドキュメント内の順序なしリストを表します。
PdfListBase.setBrush() メソッド リストのブラシを設定します。
PdfListBase.setFont() メソッド リストのフォントを設定します。
PdfListBase.sertIndent() メソッド リストのインデントを設定します。
PdfListBase.setTextIndent() メソッド マーカーからリスト項目のテキストまでのインデントを設定します。
PdfListBase.getItems() メソッド リストの項目を取得します。
PdfListBase.setMarker() メソッド リストのマーカーを設定します。
PdfListBase.draw() メソッド ページ上の指定された位置にリストを描画します。
PdfOrderedMarker クラス 数字、文字、ローマ数字など、順序付きリストのマーカスタイルを表します。
PdfMarker クラス 順序なしリストの箇条書きのスタイルを表します。

Spire.PDF for Java をインストールします

まず、Spire. PDF for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url> https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf</artifactId>
        <version>8.8.3</version>
    </dependency>
</dependencies>

PDF で順序付きリストを作成する

順序付きリストとは,一連のオブジェクトを格納するコンテナのことである.リスト内の各項目は、数字、文字、またはローマ数字でマークされます。以下は、Spire.PDF for Java を使用して、PDF に順序付きリストを作成する手順です。

  • PdfDocument クラスのオブジェクトを作成します。
  • PdfDocument.getPages().add() メソッドを用いてページを追加します。
  • リスト用の PdfBrushPdfFont クラスオブジェクトを作成します。
  • PdfOrderedMarker クラスのオブジェクトを作成し、マーカーのスタイルを Lower_Latin に指定します。
  • リストの内容を文字列に指定し、その文字列を元に PdfSortedList クラスのオブジェクトを作成します。
  • PdfSortedList オブジェクトの下にあるメソッドを使って、リストのフォント、インデント、ブラシ、マーカーを設定します。
  • PdfSortedList.draw() メソッドを使用して、ページ上の指定された位置にリストを描画します。
  • PdfDocument.saveToFile() メソッドを使用して、ドキュメントを保存します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfNumberStyle;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.PdfPageSize;
import com.spire.pdf.graphics.*;
import com.spire.pdf.lists.PdfOrderedMarker;
import com.spire.pdf.lists.PdfSortedList;

import java.awt.*;

public class createOrderedList {

    public static void main(String[] args) {

        //PdfDocumentクラスのオブジェクトを作成する
        PdfDocument doc = new PdfDocument();

        //余白を設定する
        PdfMargins margins = new PdfMargins(30);

        //ページを追加する
        PdfPageBase page = doc.getPages().add(PdfPageSize.A4, margins);

        //ブラシを作成する
        PdfBrush brush = PdfBrushes.getBlack();

        //フォントを作成する
        PdfCjkStandardFont titleFont = new PdfCjkStandardFont(PdfCjkFontFamily.Heisei_Kaku_Gothic_W_5, 14f);
        PdfCjkStandardFont listFont = new PdfCjkStandardFont(PdfCjkFontFamily.Heisei_Kaku_Gothic_W_5, 12f);

        //順序付きリストのメーカーを作成する
        PdfOrderedMarker marker = new PdfOrderedMarker(PdfNumberStyle.Lower_Latin, listFont);

        //初期座標を指定する
        float x = 10;
        float y = 20;

        //タイトルを描画する
        String title = "必要なWeb開発スキル";
        page.getCanvas().drawString(title, titleFont, brush, x, y);
        y = y + (float) titleFont.measureString(title).getHeight();
        y = y + 5;


        //番号付きリストを作成する
        String listContent = "コマンドライン Unix\n"
                + "Vim\n"
                + "HTML\n"
                + "CSS\n"
                + "Python\n"
                + "JavaScript\n"
                + "SQL";
        PdfSortedList list = new PdfSortedList(listContent);

        //リストのフォント、インデント、テキストインデント、ブラシ、マーカーを設定する
        list.setFont(listFont);
        list.setIndent(2);
        list.setTextIndent(4);
        list.setBrush(brush);
        list.setMarker(marker);

        //ページ上の指定された位置にリストを描画する
        list.draw(page, x, y);

        //ドキュメントを保存する
        doc.saveToFile("順序付きリスト.pdf");
    }
}

Java:PDF ドキュメントにリストを作成する方法

PDF で記号の箇条書きリストを作成する

順序無しリストは、箇条書きリストとも呼ばれ、特別な順序や順番を持たない関連項目の集合体である。リスト内の各項目は、箇条書きでマークされています。以下は、Spire.PDF for Java を使用して、PDF 内の順序無しリストを作成する手順です。

  • PdfDocument クラスのオブジェクトを作成します。
  • PdfDocument.getPages().add() メソッドを用いてページを追加します。
  • リスト用の PdfBrushPdfFont クラスオブジェクトを作成します。
  • PdfMarker オブジェクトを作成し、マーカーのスタイルを指定します。
  • リストの内容を文字列に指定し、その文字列を元に PdfUnorderedList クラスのオブジェクトを作成します。
  • PdfUnorderedList オブジェクトの下にあるメソッドを使って、リストのフォント、インデント、ブラシ、マーカーを設定します。
  • PdfUnorderedList.draw() メソッドを用いて、ページ上の指定された位置にリストを描画します。
  • PdfDocument.saveToFile() メソッドを使用して、ドキュメントを保存します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.PdfPageSize;
import com.spire.pdf.graphics.*;
import com.spire.pdf.lists.PdfMarker;
import com.spire.pdf.lists.PdfUnorderedList;
import com.spire.pdf.lists.PdfUnorderedMarkerStyle;

import java.awt.*;

public class createUnorderedList {
    public static void main(String[] args) {

        //PdfDocumentクラスのオブジェクトを作成する
        PdfDocument doc = new PdfDocument();

        //余白を設定する
        PdfMargins margin = new PdfMargins(30);

        //ページを追加する
        PdfPageBase page = doc.getPages().add(PdfPageSize.A4, margin);

        //フォントを作成する
        PdfCjkStandardFont titleFont = new PdfCjkStandardFont(PdfCjkFontFamily.Heisei_Kaku_Gothic_W_5, 14f);
        PdfCjkStandardFont listFont = new PdfCjkStandardFont(PdfCjkFontFamily.Heisei_Kaku_Gothic_W_5, 12f);
        PdfCjkStandardFont markerFont = new PdfCjkStandardFont(PdfCjkFontFamily.Heisei_Kaku_Gothic_W_5, 8f);

        //ブラシを作成する
        PdfBrush brush = PdfBrushes.getBlack();

        //初期座標を指定する
        float x = 10;
        float y = 20;

        //タイトルを描画する
        String title = "コンピュータ科学の科目";
        page.getCanvas().drawString(title, titleFont, brush, x, y);
        y = y + (float)titleFont.measureString(title).getHeight();
        y = y + 5;

        //マーカーのスタイルを指定する
        PdfMarker marker = new PdfMarker(PdfUnorderedMarkerStyle.Asterisk);
        marker.setFont(markerFont);

        //順序なしリストを作成する
        String listContent = "データ構造\n"
                + "アルゴリズム\n"
                + "コンピュータ科学\n"
                + "オペレーティングシステム\n"
                + "計算の理論\n"
                + "C言語プログラミング\n"
                +"コンピュータの組織と構造";
        PdfUnorderedList list = new PdfUnorderedList(listContent);

        //リストのフォント、インデント、テキストインデント、ブラシ、マーカーを設定する
        list.setFont(listFont);
        list.setIndent(2);
        list.setTextIndent(4);
        list.setBrush(brush);
        list.setMarker(marker);

        //ページ上の指定された位置にリストを描画する
        list.draw(page, x, y);

        //ドキュメントを保存する
        doc.saveToFile("順序なしリスト.pdf");
    }
}

Java:PDF ドキュメントにリストを作成する方法

PDFで画像の箇条書きリストを作成する

順序なしリストの箇条書きは、記号の他に画像も使用できます。画像の箇条書きリストを作成する手順は次のとおりです。

  • PdfDocument クラスのオブジェクトを作成します。
  • PdfDocument.getPages().add() メソッドを用いてページを追加します。
  • リスト用の PdfBrushPdfFont クラスオブジェクトを作成します。
  • PdfMarker クラスのオブジェクトを作成し、マーカーのスタイルをCustom_Imageに設定します。
  • PdfMarker.setImage() メソッドを使用して、画像をマーカーとして設定します。
  • リストの内容を文字列で指定し、その文字列を元に PdfUnorderedList クラスのオブジェクトを生成します。
  • PdfUnorderedList オブジェクトの下にあるメソッドを使って、リストのフォント、インデント、ブラシ、マーカーを設定します。
  • PdfUnorderedList.draw() メソッドを用いて、ページ上の指定された位置にリストを描画します。
  • PdfDocument.saveToFile() メソッドを使用して、ドキュメントを保存します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.PdfPageSize;
import com.spire.pdf.graphics.*;
import com.spire.pdf.lists.PdfMarker;
import com.spire.pdf.lists.PdfUnorderedList;
import com.spire.pdf.lists.PdfUnorderedMarkerStyle;

import java.awt.*;

public class customizeBulletPointsWithImage {

    public static void main(String[] args) {

        //PdfDocumentクラスのオブジェクトを作成する
        PdfDocument doc = new PdfDocument();

        //余白を設定する
        PdfMargins margin = new PdfMargins(30);

        //ページを追加する
        PdfPageBase page = doc.getPages().add(PdfPageSize.A4, margin);

        //フォントを作成する
        PdfCjkStandardFont titleFont = new PdfCjkStandardFont(PdfCjkFontFamily.Heisei_Kaku_Gothic_W_5, 14f);
        PdfCjkStandardFont listFont = new PdfCjkStandardFont(PdfCjkFontFamily.Heisei_Kaku_Gothic_W_5, 12f);

        //ブラシを作成する
        PdfBrush brush = PdfBrushes.getBlack();

        //初期座標を指定する
        float x = 10;
        float y = 20;

        //タイトルを描画する
        String title = "プロジェクトのToDoリスト";
        page.getCanvas().drawString(title, titleFont, brush, x, y);
        y = y + (float)titleFont.measureString(title).getHeight();
        y = y + 5;

        //マーカーのスタイルを画像に指定する
        PdfMarker marker = new PdfMarker(PdfUnorderedMarkerStyle.Custom_Image);

        //マーカーに画像を設定する
        marker.setImage(PdfImage.fromFile("C:/Users/Sirion/Desktop/確認マーク.png"));

        //順序なしリストを作成する
        String listContent = "取り組んでいるプロジェクトやタスクを明確にする\n"
                + "タスクに人を割り当てる。\n"
                + "タスクの優先順位を決める。\n"
                + "タスクの進捗状況を把握することができます。\n"
                + "タスクが完了したら、完了マークを付ける。";
        PdfUnorderedList list = new PdfUnorderedList(listContent);

        //リストのフォント、インデント、テキストインデント、ブラシ、メーカーを設定する
        list.setFont(listFont);
        list.setIndent(2);
        list.setTextIndent(4);
        list.setBrush(brush);
        list.setMarker(marker);

        //ページ上の指定された位置にリストを描画する
        list.draw(page, x, y);

        //ドキュメントを保存する
        doc.saveToFile("画像の箇条書き.pdf");
    }
}

Java:PDF ドキュメントにリストを作成する方法

PDF でネストした番号付きリストを作成する

ネストされたリストとは、少なくとも1つのサブリストを含むリストのことです。 これは、階層構造でデータを表示するために使用されます。以下は、Spire.PDF for Java を使用して、PDF にネストした番号付きリストを作成する手順です。

  • PdfDocument クラスのオブジェクトを作成します。
  • PdfDocument.getPages().add() メソッドでページを追加する。
  • PdfOrderedMarker クラスのオブジェクトを作成し、マーカのスタイルを Numeric に指定します。
  • リストの内容を文字列で指定し、その文字列を元に親リストを作成します。次に、PdfSortedList オブジェクトの下のメソッドを使用して、リストのフォント、インデント、ブラシ、マーカーを設定します。
  • 上記のステップを繰り返して、サブリストとサブサブリストを作成します。
  • PdfSortedList.getItems().get() メソッドを使用して親リストの特定の項目を取得し、PdfListItem.setSublist() メソッドを使用してリストをそのサブリストとして追加します。
  • PdfSortedList.draw() メソッドを使用して、ページ上の指定された位置にリストを描画します。
  • PdfDocument.saveToFile() メソッドを使用して、ドキュメントを保存します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfNumberStyle;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.PdfPageSize;
import com.spire.pdf.graphics.*;
import com.spire.pdf.lists.PdfListItem;
import com.spire.pdf.lists.PdfOrderedMarker;
import com.spire.pdf.lists.PdfSortedList;

import java.awt.*;

public class createMultiLevelList {

    public static void main(String[] args) {

        //PdfDocumentクラスのオブジェクトを作成する
        PdfDocument doc = new PdfDocument();

        //余白を設定する
        PdfMargins margin = new PdfMargins(30);

        //ページを追加する
        PdfPageBase page = doc.getPages().add(PdfPageSize.A4, margin);

        //初期座標を指定する
        float x = 10;
        float y = 20;

        //2つのブラシを作成する
        PdfBrush blackBrush = PdfBrushes.getBlack();
        PdfBrush purpleBrush = PdfBrushes.getPurple();

        //2つのフォントを作成する
        PdfCjkStandardFont titleFont = new PdfCjkStandardFont(PdfCjkFontFamily.Heisei_Kaku_Gothic_W_5, 14f);
        PdfCjkStandardFont listFont = new PdfCjkStandardFont(PdfCjkFontFamily.Heisei_Kaku_Gothic_W_5, 12f);

        //順序付きリストのメーカーを作成する
        PdfOrderedMarker marker = new PdfOrderedMarker(PdfNumberStyle.Numeric, listFont);

        //タイトルを描画する
        String title = "以下は、ネストした番号付きリストです。";
        page.getCanvas().drawString(title, titleFont, blackBrush, x, y);
        y = y + (float)titleFont.measureString(title).getHeight();
        y = y + 5;

        //親リストを作成する
        String parentListContent = "親項目1\n"
                + "親項目2";
        PdfSortedList parentList = new PdfSortedList(parentListContent);
        parentList.setFont(listFont);
        parentList.setIndent(2);
        parentList.setBrush(purpleBrush);
        parentList.setMarker(marker);

        //「subList_1」という子リストを作成する
        String subListContent_1 = "子項目1\n"
                + "子項目2\n"
                + "子項目3\n"
                + "子項目4";
        PdfSortedList subList_1 = new PdfSortedList(subListContent_1);
        subList_1.setIndent(12);
        subList_1.setFont(listFont);
        subList_1.setBrush(blackBrush);
        subList_1.setMarker(marker);
        subList_1.setMarkerHierarchy(true);

        //「subList_2」という子リストを作成する
        String subListContent_2 = "子項目1\n"
                + "子項目2\n"
                + "子項目3";
        PdfSortedList subList_2 = new PdfSortedList(subListContent_2);
        subList_2.setIndent(12);
        subList_2.setFont(listFont);
        subList_2.setBrush(blackBrush);
        subList_2.setMarker(marker);
        subList_2.setMarkerHierarchy(true);

        //「subList_2」という第二階層子リストを作成する
        String subSubListContent_1 = "第二階層子項目1\n"
                + "第二階層子項目2";
        PdfSortedList subSubList = new PdfSortedList(subSubListContent_1);
        subSubList.setIndent(20);
        subSubList.setFont(listFont);
        subSubList.setBrush(blackBrush);
        subSubList.setMarker(marker);
        subSubList.setMarkerHierarchy(true);

        //「subList_1」を親リストの1番目の項目のサブリストとして設定する
        PdfListItem item_1 = parentList.getItems().get(0);
        item_1.setSubList(subList_1);

        //「subList_2」を親リストの2番目の項目のサブリストとして設定する
        PdfListItem item_2 = parentList.getItems().get(1);
        item_2.setSubList(subList_2);

        //「subSubList」を「subList_1」の最初の項目の子リストとして設定する
        PdfListItem item_1_1 = subList_1.getItems().get(0);
        item_1_1.setSubList(subSubList);

        //親リストを描画する
        parentList.draw(page, x, y);

        //ドキュメントを保存する
        doc.saveToFile("多階層リスト.pdf");
    }
}

Java:PDF ドキュメントにリストを作成する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Spire.Presentation for Java 8.1.2のリリースを発表できることをうれしく思います。このリリースでは、ツリーマップ、サンバースト、ヒストグラム、箱ひげ図、ウォーターフォール、パレート図、じょうごなど、PowerPoint 2016に新たに追加されたグラフの種類の作成をサポートしました。詳細は以下の内容を読んでください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
New feature - ツリーマップ、サンバースト、ヒストグラム、箱ひげ図、ウォーターフォール、パレート図、じょうごなどのグラフの種類をサポートしました。
ここで Spire.Presentation for Java 8.1.2をダウンロードする

Spire.PDF for Java 9.1.4のリリースを発表できることをうれしく思います。このバージョンでは、PDFドキュメントを圧縮する新しい方法が追加されました。PDFからPDFAへの変換機能も強化されました。また、このリリースでは既知の問題が修正されました。詳細は以下の内容を読んでください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
New feature - PDFドキュメントを圧縮する方法が追加されました。
PdfCompressor compressor = new PdfCompressor(fileName); 
compressor.compressToFile(outputName)
Bug SPIREPDF-5667 ドキュメントをマージすると、アプリケーションが「com.spire.pdf.packages.sprnsn cannot be cast to com.spire.pdf.packages.sprvqe」をスローする問題が修正されました。
Bug SPIREPDF-5682 PDFをPDFAに変換した後にフォームの内容が失われていた問題が修正されました。
ここでSpire.PDF for Java 9.1.4をダウンロードする

Word のテーブルには、テキストや画像など、さまざまな要素を含めることができます。場合によっては、画像をテーブルに挿入して情報を表示したり、他のドキュメントで使用するためにテーブルから画像を抽出したりすることがあります。この記事では、Spire.Doc for .NET を使用して、C# および VB.NET でプログラムによって Word でテーブルに画像を挿入または抽出する方法を示します。

Spire.Doc for .NET をインストールします

まず、Spire.Doc for .NET パッケージに含まれている DLL ファイルを .NET プロジェクトの参照として追加する必要があります。DLL ファイルは、このリンクからダウンロードするか、NuGet を介してインストールできます。

PM> Install-Package Spire.Doc

C# および VB.NET で Word のテーブルに画像を挿入する

Spire.Doc for .NET が提供する TableCell.Paragraphs[int].AppendPicture() メソッドは、特定のテーブルのセルに画像を追加することをサポートします。詳細な手順は次のとおりです。

  • Document のインスタンスを初期化します。
  • Document.LoadFromFile() メソッドを使用して Word ドキュメントをロードします。
  • Document.Sections [int] プロパティを使用して、特定のセクションをインデックスで取得します。
  • Section.Tables[int] プロパティを使用して、セクション内の特定のテーブルをインデックスで取得します。
  • Table.Row[int].Cells[int] プロパティを使用して、特定のセルにアクセスします。
  • TableCell.Paragraphs[int].AppendPicture() メソッドを使用して、セルの特定の段落に画像を追加します
  • DocPicture.WidthDocPicture.Height プロパティを使用して、画像の幅と高さを設定します。
  • Document.SaveToFile() メソッドを使用して結果ドキュメントを保存します。
  • C#
  • VB.NET
using Spire.Doc;
using Spire.Doc.Fields;
using System.Drawing;

namespace InsertImagesIntoTable
{
    class Program
    {
        static void Main(string[] args)
        {
            //Documentのインスタンスを初期化する
            Document doc = new Document();
            //Wordドキュメントをロードする
            doc.LoadFromFile("Table.docx");

            //最初のセクションを取得する
            Section section = doc.Sections[0];

            //セクションから最初のテーブルを取得する
            Table table = (Table)section.Tables[0];

            //テーブルの2行目の3番目のセルに画像を追加する
            TableCell cell = table.Rows[1].Cells[2];
            DocPicture picture = cell.Paragraphs[0].AppendPicture(Image.FromFile("doc.png"));
            //画像の幅と高さを設定する
            picture.Width = 100;
            picture.Height = 100;
            //テーブルの3行目の3番目のセルに画像を追加する
            cell = table.Rows[2].Cells[2];
            picture = cell.Paragraphs[0].AppendPicture(Image.FromFile("xls.png"));
            //画像の幅と高さを設定する
            picture.Width = 100;
            picture.Height = 100;

            //結果ドキュメントを保存する
            doc.SaveToFile("AddImageToTable.docx", FileFormat.Docx2013);
        }
    }
}
Imports Spire.Doc
Imports Spire.Doc.Fields

Namespace InsertImagesIntoTable
    Friend Class Program
        Private Shared Sub Main(ByVal args As String())
            'Documentのインスタンスを初期化する
            Dim doc As Document = New Document()
            'Wordドキュメントをロードする
            doc.LoadFromFile("Table.docx")

            ' 最初のセクションを取得する
            Dim section As Section = doc.Sections(0)

            'セクションから最初のテーブルを取得する
            Dim table As Table = CType(section.Tables(0), Table)

            'テーブルの2行目の3番目のセルに画像を追加する
            Dim cell As TableCell = table.Rows(1).Cells(2)
            Dim picture As DocPicture = cell.Paragraphs(0).AppendPicture(Image.FromFile("doc.png"))
            '画像の幅と高さを設定する
            picture.Width = 100
            picture.Height = 100
            'テーブルの3行目の3番目のセルに画像を追加する
            cell = table.Rows(2).Cells(2)
            picture = cell.Paragraphs(0).AppendPicture(Image.FromFile("xls.png"))
            '画像の幅と高さを設定する
            picture.Width = 100
            picture.Height = 100

            '結果ドキュメントを保存する
            doc.SaveToFile("AddImageToTable.docx", FileFormat.Docx2013)
        End Sub
    End Class
End Namespace

C#/VB.NET:Word のテーブルに画像を挿入または抽出する方法

C# および VB.NET で Word のテーブルから画像を抽出する

テーブルから画像を抽出するには、すべての行、各行のすべてのセル、各セルのすべての段落と各段落のすべてのサブオブジェクトをループします。次に、DocPicture タイプのオブジェクトを見つけ、DocPicture.Image.Save() メソッドを使用して指定したファイルパスに保存します。具体的な手順は次のとおりです。

  • Document のインスタンスを初期化します。
  • Document.LoadFromFile() メソッドを使用して Word ドキュメントをロードします。
  • Document.Sections [int] プロパティを使用して、特定のセクションをインデックスで取得します。
  • Section.Tables[int] プロパティを使用して、セクション内の特定のテーブルをインデックスで取得します。
  • テーブル内のすべての行をループします。
  • 各行のすべてのセルをループします。
  • 各セルのすべての段落をループします。
  • 各段落のすべてのサブオブジェクトをループします。
  • 現在のサブオブジェクトが DocPicture タイプであるかどうかを確認します。
  • 結果が true の場合は、オブジェクトのタイプを DocPicture に変換し、DocPicture.Image.Save() メソッドを使用して指定したファイルパスに画像を保存します。
  • C#
  • VB.NET
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System;
using System.Drawing.Imaging;

namespace ExtractImagesFromTable
{
    class Program
    {
        static void Main(string[] args)
        {
            //Documentクラスを初期化する
            Document doc = new Document();
            //Wordドキュメントをロードする
            doc.LoadFromFile("AddImageToTable.docx");

            //最初のセクションを取得する
            Section section = doc.Sections[0];

            //セクションから最初のテーブルを取得する
            Table table = (Table)section.Tables[0];

            int index = 0;
            string imageName = null;

            //テーブル内のすべての行をループする 
            for (int i = 0; i < table.Rows.Count; i++)
            {
                //各行のすべてのセルをループする
                for (int j = 0; j < table.Rows[i].Cells.Count; j++)
                {
                    //各セル内のすべての段落をループする
                    foreach (Paragraph para in table[i, j].Paragraphs)
                    {
                        //各段落内のすべてのサブオブジェクトをループする
                        foreach (DocumentObject obj in para.ChildObjects)
                        {
                            //現在のサブオブジェクトがDocPictureタイプであるかどうかを確認する
                            if (obj is DocPicture)
                            {
                                //指定したファイルパスに画像を保存する
                                imageName = string.Format(@"images\TableImage-{0}.png", index);
                                (obj as DocPicture).Image.Save(imageName, ImageFormat.Png);
                                index++;
                            }
                        }
                    }
                }
            }
        }
    }
}
Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields
Imports System.Drawing.Imaging

Namespace ExtractImagesFromTable
    Friend Class Program
        Private Shared Sub Main(ByVal args As String())
            'Documentクラスを初期化する
            Dim doc As Document = New Document()
            ' Wordドキュメントをロードする
            doc.LoadFromFile("AddImageToTable.docx")

            'ドキュメントの最初のセクションを取得する
            Dim section As Section = doc.Sections(0)

            '最初のセクションから最初のテーブルを取得する
            Dim table As Table = CType(section.Tables(0), Table)

            Dim index = 0
            Dim imageName As String = Nothing

            'テーブル内のすべての行をループする 
            For i As Integer = 0 To table.Rows.Count - 1
                '各行のすべてのセルをループする
                For j As Integer = 0 To table.Rows(i).Cells.Count - 1
                    '各セル内のすべての段落をループする
                    For Each para As Paragraph In table(i, j).Paragraphs
                        '各段落内のすべてのサブオブジェクトをループする
                        For Each obj As DocumentObject In para.ChildObjects
                            '現在のサブオブジェクトがDocPictureタイプであるかどうかを確認する
                            If TypeOf obj Is DocPicture Then
                                '指定したファイルパスに画像を保存する
                                imageName = string.Format("images\TableImage-{0}.png", index)
                                TryCast(obj, DocPicture).Image.Save(imageName, ImageFormat.Png)
                                index += 1
                            End If
                        Next
                    Next
                Next
            Next
        End Sub
    End Class
End Namespace

C#/VB.NET:Word のテーブルに画像を挿入または抽出する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

PDF は、ページ上に文字と図形を表示することができ、また保存容器としても機能する多機能なファイル形式です。PDF にファイルを添付し、後で取り出すことも可能です。また、PDFに関連資料を添付することで、資料の一元管理と送信を容易にすることができます。

Spire.PDF for Java では、2つの方法でファイルを添付することができます。

  • ドキュメントレベルの添付ファイル:文書レベルで PDF に添付されたファイルは、ページには表示されませんが、PDF リーダーの「添付ファイル」パネルで見ることができます。
  • 注釈としての添付ファイル:ページの特定の位置に追加されるファイルです。注釈としての添付ファイルは、ページ上にクリップのアイコンとして表示され、読者はそのアイコンをダブルクリックしてファイルを開くことができます。

この記事では、Spire.PDF for Java を使用して、Java でPDF ドキュメントにこれらの2つのタイプの添付ファイルを追加または削除する方法を示します。

Spire.PDF for Java をインストールします

まず、Spire. PDF for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url> https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf</artifactId>
        <version>8.8.3</version>
    </dependency>
</dependencies>

PDF に添付ファイルを追加する

PdfDocument.getAttachments().add() メソッドを使用すると、「添付ファイル」パネルに添付ファイルを簡単に追加することができます。以下は、その詳細な手順です。

  • PdfDocument クラスのオブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッドを使用して PDF ドキュメントを読み込みます。
  • 外部ファイルに基づいて PdfAttachment クラスのオブジェクトを作成します。
  • PdfDocument.getAttachments().add() メソッドを使用して、PDF に添付ファイルを追加します。
  • PdfDocument.saveToFile() メソッドを使用して、ドキュメントを保存します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.attachments.PdfAttachment;

public class addAttachmentsToPdf {

    public static void main(String[] args) {

        //PdfDocumentクラスのオブジェクトを作成する
        PdfDocument doc = new PdfDocument();

        //PDFファイルを読み込む
        doc.loadFromFile("年次総会.pdf");

        //外部ファイルを元にPdfAttachmentクラスのオブジェクトを作成する
        PdfAttachment attachment = new PdfAttachment("出席者の一覧.xlsx");

        //PDFに添付ファイルを追加する
        doc.getAttachments().add(attachment);

        //PDFファイルを保存する
        doc.saveToFile("添付ファイル.pdf");
    }
}

Java:PDF に添付ファイルを追加・削除する方法

PDF に注釈の添付ファイルを追加する

注釈の添付は、特定のページだけでなく「添付ファイル」パネルでも見つけることができます。以下は、Spire.PDF for Java を使用して PDF に注釈の添付ファイルを追加する手順です。

  • PdfDocument クラスのオブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッドを用いて PDF ドキュメントを読み込みます。
  • PdfDocument.getPages().get() メソッドを使用して、注釈を追加する特定のページを取得します。
  • PdfPageBase.findText() メソッドを使用して、注釈を付けるテキストを検索します。
  • 外部ファイルに基づいて PdfAttachmentAnnotation クラスのオブジェクトを作成します。
  • PdfPageBase.getAnnotationsWidget().add() メソッドを使用して、ページに注釈の添付ファイルを追加します。
  • PdfDocument.saveToFile() メソッドを使用して、ドキュメントを保存します。
  • Java
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.annotations.*;
import com.spire.pdf.general.find.PdfTextFind;
import com.spire.pdf.general.find.PdfTextFindCollection;
import com.spire.pdf.graphics.*;
import com.spire.pdf.PdfDocument;

import java.awt.*;
import java.awt.geom.Dimension2D;
import java.awt.geom.Rectangle2D;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class addAnnotationAttachment {

    public static void main(String[] args) throws IOException {

        //PdfDocumentクラスのオブジェクトを作成する
        PdfDocument doc = new PdfDocument();

        //PDFファイルを読み込む
        doc.loadFromFile("年次総会.pdf");

        //指定のページを取得する
        PdfPageBase page = doc.getPages().get(0);

        //注釈を付けるテキストを探す
        PdfTextFindCollection results = page.findText("出席者の一覧", true, false);
        PdfTextFind[] findCollection = results.getFinds();
        String find = findCollection[0].toString();

        //注釈としてファイルを添付する
        String filePath = "出席者の一覧.xlsx";
        double x = findCollection[0].getPosition().getX();
        double y = doc.getPages().get(0).getActualSize().getHeight() - 592;
        byte[] data = toByteArray(filePath);
        PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Meiryo UI", Font.PLAIN, 13));
        Dimension2D size = font.measureString(find);
        Rectangle2D bound = new Rectangle2D.Float((float) (x + size.getWidth()/4), (float) y, 10, 15);
        PdfAttachmentAnnotation annotation = new PdfAttachmentAnnotation(bound, filePath, data);
        annotation.setColor(new PdfRGBColor(new Color(0, 128, 128)));
        annotation.setFlags(PdfAnnotationFlags.Default);
        annotation.setIcon(PdfAttachmentIcon.Graph);
        annotation.setText("ファイルを開くには、こちらをクリックしてください。");
        page.getAnnotationsWidget().add(annotation);

        //PDFファイルを保存する
        doc.saveToFile("注釈としての添付ファイル.pdf");
    }
    //ファイルをバイト配列に変換する
    public static byte[] toByteArray(String filePath) throws IOException {

        File file = new File(filePath);
        long fileSize = file.length();
        if (fileSize > Integer.MAX_VALUE) {
            System.out.println("ファイルサイズが大きすぎる。");
            return null;
        }
        FileInputStream fi = new FileInputStream(file);
        byte[] buffer = new byte[(int) fileSize];
        int offset = 0;
        int numRead = 0;
        while (offset < buffer.length
                && (numRead = fi.read(buffer, offset, buffer.length - offset)) >= 0) {
            offset += numRead;
        }

        if (offset != buffer.length) {
            throw new IOException("ファイルを完全に読み取ることができませんでした。"
                    + file.getName());
        }
        fi.close();
        return buffer;
    }
}

Java:PDF に添付ファイルを追加・削除する方法

PDF から添付ファイルを削除する

PDF 文書の添付ファイルは、PdfDocument.getAttachments() メソッドでアクセスでき、PdfAttachmentCollection クラスのオブジェクト下の removeAt() メソッドまたは clear() メソッドを使用して削除することが可能です。詳細な手順は以下の通りです。

  • PdfDocument クラスのオブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッドを使用して PDF ドキュメントを読み込みます。
  • PdfDocument.getAttachments() メソッドを使用して、ドキュメントから添付ファイルのコレクションを取得します。
  • PdfAttachmentCollection.removeAt() メソッドを使用して、特定の添付ファイルを削除します。すべての添付ファイルを一度に削除するには、PdfAttachmentCollection.clear() メソッドを使用します。
  • PdfDocument.saveToFile() メソッドを使用して、ドキュメントを保存します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.attachments.PdfAttachmentCollection;

public class removeAttachments {

    public static void main(String[] args) {

        //PdfDocumentクラスのオブジェクトを作成する
        PdfDocument doc = new PdfDocument();

        //PDFファイルを読み込む
        doc.loadFromFile("添付ファイル.pdf");

        //注釈の添付ファイルを含まない添付ファイルコレクションを取得する
        PdfAttachmentCollection attachments = doc.getAttachments();

        //すべての添付ファイルを削除する
        attachments.clear();

        //指定した添付ファイルを削除する
        //attachments.removeAt(0);

        //PDFファイルを保存する
        doc.saveToFile("添付ファイルの削除.pdf");
        doc.close();
    }
}

PDF から注釈の添付ファイルを削除する

注釈は、ページを基準にした要素です。文書からすべての注釈を取得するには、ページをたどり、各ページから注釈を取得する必要があります。次に、ある注釈が注釈添付であるかどうかを判断します。最後に、remove() メソッドを使用して、注釈コレクションから注釈としての添付ファイルを削除します。 以下はその詳細な手順です。

  • PdfDocument クラスのオブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッドを使用して PDF ドキュメントを読み込みます。
  • ドキュメント内のページをループし、PdfPageBase.getAnnotationsWidget() メソッドを使用して特定のページから注釈コレクションを取得します。
  • 注釈が PdfAttachmentAnnotationWidget クラスのインスタンスであるかどうかを判断します。はいの場合、PdfAnnotationCollection.remove() メソッドを使用して、注釈添付ファイルを削除します。
  • PdfDocument.saveToFile() メソッドでドキュメントを保存します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.annotations.PdfAnnotation;
import com.spire.pdf.annotations.PdfAnnotationCollection;
import com.spire.pdf.annotations.PdfAttachmentAnnotationWidget;

public class removeAnnotationAttachments {

    public static void main(String[] args) {

        //PdfDocumentクラスのオブジェクトを作成する
        PdfDocument doc = new PdfDocument();

        //PDFファイルを読み込む
        doc.loadFromFile("注釈としての添付ファイル.pdf");

        //ページをループする
        for (int i = 0; i < doc.getPages().getCount(); i++) {

            //注釈コレクションを取得する
            PdfAnnotationCollection annotationCollection = doc.getPages().get(i).getAnnotationsWidget();

            //注釈をループする
            for (Object annotation: annotationCollection) {

                //注釈がPdfAttachmentAnnotationWidgetクラスのインスタンスであるかどうかを判定する
                if (annotation instanceof PdfAttachmentAnnotationWidget){

                    //添付ファイルの注釈を削除する
                    annotationCollection.remove((PdfAnnotation) annotation);
                }
            }
        }

        //PDFファイルを保存する
        doc.saveToFile("注釈としての添付ファイルの削除.pdf");
        doc.close();
    }
}

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Spire.XLS 13.1.1のリリースを発表できることを嬉しく思います。今回のアップデートでは、ExcelからPDF、XLSからXLSXへの変換機能が強化されました。また、グラフを画像に変換する際に棒グラフが座標軸の左側から飛び出してしまう問題や、XLSMドキュメントをロードして保存した後にマクロが失われてしまう問題など、多くの既知の問題が修正されました。詳細は以下の内容を読んでください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
Bug SPIREXLS-1105 sheet1.CopyFrom(sheet2)メソッドを使用してsheetコンテンツをコピーすると、アプリケーションが「Maximum number of extended formats exceeded」をスローする問題が修正されました。
Bug SPIREXLS-4310 UTF 8エンコードされたHTMLをロードする際にアプリケーションが「System.ArgumentException」をスローする問題が修正されました。
Bug SPIREXLS-4320 グラフを画像に変換するときに棒グラフが座標軸の左側から飛び出してしまう問題が修正されました。
Bug SPIREXLS-4334 XLSをXLSXに変換する際にアプリケーションが「System.Xml.XmlException」をスローする問題が修正されました。
Bug SPIREXLS-4338 「CopyRangeOptions copyOptions = CopyRangeOptions.OnlyCopyFormulaValue;」の設定が機能しない問題が修正されました。
Bug SPIREXLS-4358 sheetを削除する際にアプリケーションが「System.ArgumentOutOfRangeException」をスローした問題が修正されました。
Bug SPIREXLS-4365 XLSMドキュメントをロードして保存した後にマクロが失われていた問題が修正されました。
Bug SPIREXLS-4373 ドキュメントを保護した後のメニューの機能が正しくない問題が修正されました。
Bug SPIREXLS-4375 式の計算に失敗した問題が修正されました。
Bug SPIREXLS-4381 計算された式の値が正しくない問題が修正されました。
Bug SPIREXLS-4384 ExcelをPDFに変換した後の日付フォーマットが正しくない問題が修正されました。
ここで Spire.XLS 13.1.1をダウンロードする

チームメンバーと一緒に PowerPoint ドキュメントを作成する場合、コメントを追加することは、ドキュメントの内容についてフィードバックを提供したり、意見を交換したりするための最も効果的な方法です。また、既存のコメントの変更または削除が必要な場合もあります。この記事では、Spire.Presentation for Java を使用して PowerPoint でコメントを追加、変更、または削除する方法を紹介します。

Spire.Presentation for Java をインストールします

まず、Spire.Presentation for Java を Java プロジェクトに追加する必要があります。JAR ファイルは、このリンクからダウンロードできます。Maven を使用する場合は、次のコードをプロジェクトの pom.xml ファイルに追加する必要があります。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url> https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.presentation</artifactId>
        <version>7.12.4</version>
    </dependency>
</dependencies>

Java で PowerPoint のコメントを追加する

Spire.Presentation for Java が提供する ISlide.addComment() メソッドでは、指定したスライドにコメントを追加できます。詳細な手順は次のとおりです。

  • Presentation クラスのインスタンスを初期化します。
  • Presentation.loadFromFile() メソッドを使用して PowerPoint ドキュメントをロードします。
  • Presentation.getCommentAuthors().addAuthor() メソッドを使用してコメントの作成者を追加します。
  • Presentation.getSlides().get() メソッドを使用して指定されたスライドを取得し、ISlide.addComment(ICommentAuthor author, java.lang.String text, java.awt.geom.Point2D position, java.util.Date dateTime) メソッドを使用してスライドにコメントを追加します。
  • Presentation.saveToFile() メソッドを使用して結果ドキュメントを保存します。
  • Java
import com.spire.presentation.*;
import java.awt.geom.Point2D;

public class AddComment {
    public static void main(String[] args) throws Exception{
        //Presentationクラスのインスタンスを初期化する
        Presentation ppt = new Presentation();

        //PowerPointドキュメントをロードする
        ppt.loadFromFile("Sample.pptx");

        //コメントの作成者を追加する
        ICommentAuthor author = ppt.getCommentAuthors().addAuthor("E-iceblue", "コメント:");

        //指定されたスライドへにコメントを追加する
        ppt.getSlides().get(0).addComment(author, "最初のコメント", new Point2D.Float(350, 140), new java.util.Date());

        //結果ドキュメントを保存する
        ppt.saveToFile("AddComment.pptx", FileFormat.PPTX_2013);
        ppt.dispose();
    }
}

Java:PowerPoint でコメントを追加、変更、削除する方法

Java で PowerPoint のコメントを変更する

Spire.Presentation for Java が提供する ISlide.getComments().setText() メソッドでは、スライドのコメントを変更できます。詳細な手順は次のとおりです。

  • Presentation クラスのインスタンスを初期化します。
  • Presentation.loadFromFile() メソッドを使用して PowerPoint ドキュメントをロードします。
  • Presentation.getSlides().get() メソッドを使用して、指定されたスライドを取得します。
  • ISlide.getComments().setText() メソッドを使用して、スライド内の指定されたコメント置き換えます。
  • Presentation.saveToFile() メソッドを使用して結果ドキュメントを保存します。
  • Java
import com.spire.presentation.*;

public class ReplaceComment {
    public static void main(String[] args) throws Exception{
        //Presentationクラスのインスタンスを初期化する
        Presentation ppt = new Presentation();

        //PowerPointドキュメントをロードする
        ppt.loadFromFile("AddComment.pptx");

        //最初のスライドを取得する
        ISlide slide = ppt.getSlides().get(0);

        //スライドの指定されたコメント置き換えます
        slide.getComments()[0].setText("Spire.Presentation for Javaの概要");

        //結果ドキュメントを保存する
        ppt.saveToFile("ReplaceComment.pptx", FileFormat.PPTX_2013);
        ppt.dispose();
    }
}

Java:PowerPoint でコメントを追加、変更、削除する方法

Java で PowerPoint のコメントを削除する

Spire.Presentation for Java が提供する ISlide.deleteComment() メソッドでは、スライドのコメントを削除できます。詳細な手順は次のとおりです。

  • Presentation クラスのインスタンスを初期化します。
  • Presentation.loadFromFile() メソッドを使用して PowerPoint ドキュメントをロードします。
  • Presentation.getSlides().get() メソッドを使用して、指定されたスライドを取得します。
  • ISlide.deleteComment(Comment comment) メソッドを使用して、指定したコメントをスライドから削除します。
  • Presentation.saveToFile() メソッドを使用して結果ドキュメントを保存します。
  • Java
import com.spire.presentation.*;

public class DeleteComment {
    public static void main(String[] args) throws Exception{
        //Presentationクラスのインスタンスを初期化する
        Presentation ppt = new Presentation();

        //PowerPointドキュメントをロードする
        ppt.loadFromFile("AddComment.pptx");

        //最初のスライドを取得する
        ISlide slide = ppt.getSlides().get(0);

        //指定したコメントをスライドから削除する
        slide.deleteComment(slide.getComments()[0]);

        //結果ドキュメントを保存する
        ppt.saveToFile("DeleteComment.pptx", FileFormat.PPTX_2013);
        ppt.dispose();
    }
}

Java:PowerPoint でコメントを追加、変更、削除する方法

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Spire.Presentation8.1.1 のリリースを発表できることをうれしく思います。このリリースでは、コメントに返信する機能がサポートしました。また、生成された Excel でグラフのデータの null 値が0になる問題が修正されたなど既知の問題も修正されました。詳細は以下の内容を読んでください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
New feature SPIREPPT-2133 コメントに返信する機能がサポートしました。
Presentation ppt = new Presentation();
ICommentAuthor author = ppt.CommentAuthors.AddAuthor("E-iceblue", "comment");
ppt.Slides[0].AddComment(author, "Add comment", new System.Drawing.Point(18, 25), DateTime.Now);
Comment comment = ppt.Slides[0].Comments[0];
if (!comment.IsReply)
 {
 comment.Reply(author, "Add Reply1", DateTime.Now);
 comment.Reply(author, "Add Reply2", DateTime.Now);
 }
ppt.Slides[0].DeleteComment(author, "Add Reply1");
ppt.SaveToFile(outputFile, FileFormat.Pptx2013);
Bug SPIREPPT-2124 生成された Excel でグラフのデータの null 値が0になる問題が修正されました。
Bug SPIREPPT-2124 組み合わせをキャンセルすると形状の向きが変更される問題を修正しました。
ここで Spire. Presentation 8.1.1 をダウンロードする