チュートリアル

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

Koohji

Koohji

Spire.DocViewer 8.7.1のリリースを発表できることを嬉しく思います。このバージョンでは、Word文書のプレビュー時に画像の位置が正しく表示されない問題が修正されました。詳細は以下の内容を読んでください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
Bug SPIREDOCVIEWER-107 Word文書のプレビュー時に画像の位置が正しく表示されない問題が修正されました。
ここで Spire.DocViewer 8.7.1をダウンロードする

Word ドキュメントの編集制限は、ドキュメント上で実行可能な編集操作を制限するためにドキュメント上に配置することができるパスワード付き可能な保護です。編集制限を設定することで、ユーザーはドキュメントのどの部分を編集でき、どのような種類の編集を実行できるかを正確に制御することができます。この制限により、重要な情報が変更されないようにする一方で、ドキュメントの他の部分に対して指定された種類の編集を行うことができるため、共同編集や情報収集などの作業において非常に便利です。しかし、ドキュメント管理者が、ドキュメントの誤りを修正したり、ドキュメント情報を更新したり、新しい用途のためにドキュメントに変更を加えたりするために、編集制限を解除する必要がある場合があります。この記事では、Spire.Doc for Java を使用して、Java プログラムを通じて Word 文書の編集制限を設定および解除する方法について説明します。

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

まず、Spire. Doc 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.doc</artifactId>
        <version>10.7.4</version>
    </dependency>
</dependencies>

Word ドキュメントに編集制限を設定する

Spire.Doc for Java は、Word ドキュメントに4種類の編集制限を設定することをサポートしています:変更不可(読み取り専用)、変更履歴、コメント、フォームの入力。 これらの編集制限は、Document.protect() メソッドといくつかの列挙型を使用して設定することができます。

以下に、編集制限の設定に使用する列挙型の一覧とその説明を示します。

列挙型 制限種類 説明
ProtectionType.Allow_Only_Reading 変更不可(読み取り専用) ドキュメントの閲覧のみを許可する。
ProtectionType.Allow_Only_Revisions 変更履歴 ドキュメントへの変更履歴の追加のみを許可する。
ProtectionType.Allow_Only_Comments コメント ドキュメントへのコメントの追加のみを許可する。
ProtectionType.Allow_Only_Form_Fields フォームの入力 ドキュメントのフォームへの入力のみを許可する。
ProtectionType.No_Protection 無制限 ドキュメントのあらゆる編集を許可する。

Word ドキュメントでパスワードによる編集制限を設定する具体的な手順は以下のとおりです。

  • Document クラスのオブジェクトを作成します。
  • Document.loadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • Document.protect() メソッドを使用して、パスワードによる編集制限を設定します。
  • Document.saveToFile() メソッドを使用して、ドキュメントを保存します。
  • Java
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.ProtectionType;

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

        //Documentオブジェクトを作成します
        Document doc = new Document();

        //Word文書を読み込みます
        doc.loadFromFile("サンプル.docx");

        //制限の種類を読み取り専用に設定し、パスワードを追加します
        doc.protect(ProtectionType.Allow_Only_Reading, "password");

        //制限の種類をコメントのみ追加可能に設定し、パスワードを追加します
        //doc.protect(ProtectionType.Allow_Only_Comments, "パスワード");

        //制限の種類をフォームフィールドの入力のみに設定し、パスワードを追加します
        //doc.protect(ProtectionType.Allow_Only_Form_Fields, "パスワード");

        //制限の種類を校閲のみに設定し、パスワードを追加します
        //doc.protect(ProtectionType.Allow_Only_Revisions, "パスワード");

        //文書を保存します
        doc.saveToFile("編集の制限.docx", FileFormat.Auto);
    }
}

Java:Word 文書の編集制限の設定と解除

Word ドキュメントの編集制限の設定中に例外を追加する

ユーザーは、Word ドキュメントの編集制限を設定する際に、許可の開始タグと終了タグを挿入することで、例外処理(制限のない領域)を追加することができます。詳しい手順は以下の通りです。

  • Document クラスのオブジェクトを作成します。
  • Document.loadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • PermissionStart クラスのオブジェクトと PermissionEnd クラスのオブジェクトを作成します。
  • Document.getSections().get() メソッドを使用して最初のセクションを取得します。
  • 許可の開始タグと終了タグを段落に挿入し、制限のない領域を設定します。
  • Document.protect() メソッドを使用して、他の領域にパスワードによる編集制限を設定します。
  • Document.saveToFile() メソッドを使用してドキュメントを保存します。
  • Java
import com.spire.doc.*;

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

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

        //Wordドキュメントを読み込む
        doc.loadFromFile("サンプル.docx");

        //編集が許可される領域の開始と終了のマークを作成する
        PermissionStart start = new PermissionStart(doc, "permission1");
        PermissionEnd end = new PermissionEnd(doc, "permission1");

        //ドキュメントの最初のセクションを取得する
        Section section = doc.getSections().get(0);

        //ドキュメントに編集を許可する領域の開始と終了のマークを挿入する
        section.getParagraphs().get(1).getChildObjects().insert(0, start);
        section.getParagraphs().get(5).getChildObjects().add(end);

        //編集制限を設定し、パスワードを追加する
        doc.protect(ProtectionType.Allow_Only_Reading, "password");

        //ドキュメントを保存する
        doc.saveToFile("例外処理.docx", FileFormat.Auto);
    }
}

Java:Word 文書の編集制限の設定と解除

Word ドキュメントの編集制限を解除する

編集制限を解除するには、任意の編集を許可するように編集制限を設定します。詳しい手順は以下の通りです。

  • Document クラスのオブジェクトを作成します。
  • Document.loadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • Document.protect() メソッドを使用して、編集制限をあらゆる編集を許可するように設定し、パスワードを削除します。
  • 例外領域がある場合は、許可開始タグと許可終了タグを見つけて削除します。
  • Document.saveToFile() メソッドを使用してドキュメントを保存します。
  • Java
import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;

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

        //Documentオブジェクトを作成する
        Document doc = new Document();

        //Wordドキュメントを読み込む
        doc.loadFromFile("例外処理.docx");

        //編集制限を削除する
        doc.protect(ProtectionType.No_Protection);

        //許可の開始と終了のタグを見つけて削除する
        for(int j=0;j<doc.getSections().getCount();j++){
            //セクションを取得する
            Section section=doc.getSections().get(j);
            for(int k=0;k<section.getParagraphs().getCount();k++){
                //セクション内の段落を取得する
                Paragraph paragraph=section.getParagraphs().get(k);
                for(int i=0;i<paragraph.getChildObjects().getCount();){
                    //段落の子オブジェクトを取得する
                    DocumentObject obj=paragraph.getChildObjects().get(i);
                    //子オブジェクトがPermissionStartまたはPermissionEndのインスタンスか確認する
                    if(obj instanceof PermissionStart||obj instanceof PermissionEnd){
                        //そうであれば、その子オブジェクトを削除する
                        paragraph.getChildObjects().remove(obj);
                    }else{
                        i++;
                    }
                }
            }
        }

        //ドキュメントを保存する
        doc.saveToFile("編集制限の取り消し.docx", FileFormat.Auto);
    }
}

Java:Word 文書の編集制限の設定と解除

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

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

Spire.Presentation 8.8.4のリリースを発表できることをうれしく思います。このバージョンでは、置き換えられたテキストをハイライトする機能をサポートしています。また、現代の注釈内容を含むPPTのページをコピーする際に失敗する問題など、既知の問題も修正されました。詳細は以下の内容を読んでください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
New feature SPIREPPT-2311 置き換えられたテキストをハイライトする機能をサポートしています。
Presentation ppt = new Presentation(); 
ppt.LoadFromFile("input.pptx"); 
DefaultTextRangeProperties format = new DefaultTextRangeProperties(); 
format.IsBold = TriState.True; 
format.Fill.FillType = Spire.Presentation.Drawing.FillFormatType.Solid; 
format.Fill.SolidColor.Color = Color.Red; 
format.FontHeight = 25; 
ppt.ReplaceAndFormatText("Yuma", "AAAA", format); 
ppt.SaveToFile("output.pptx", FileFormat.Pptx2016); 
Bug SPIREPPT-2286 think-cellオブジェクトを含むPPTドキュメントを分割する際に、think-cellオブジェクトが失われる問題が修正されました。
Bug SPIREPPT-2292 現代の注釈内容を含むPPTページのコピーに失敗する問題が修正されました。
Bug SPIREPPT-2315 涙滴の形状の形状を取得する際に、「System.IndexOutOfRangeException」の例外が発生する問題が修正されました。
Bug SPIREPPT-2317 ハイパーリンクの色を変更した後、PDFに変換する際に色が適用されない問題が修正されました。
ここで Spire. Presentation 8.8.4をダウンロードする

SVG ファイルはベクターベースのグラフィックであり、品質を損なうことなく拡大縮小やサイズ調整が可能です。このファイル形式は特定の場合に非常に便利です。ただし、さらなる処理、共有、配布、印刷、アーカイブのために PDF など他の形式に変換する必要がある場合もあります。この記事では、Spire.PDF for Java を使用して SVG 画像を PDF ファイルに変換する方法を紹介します。

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>9.7.8</version>
    </dependency>
</dependencies>

Java で SVG を PDF に変換する

Spire.PDF for Java では、SVG ファイルを読み込むための PdfDocument.loadFromSvg() メソッドが提供されており、その後、PdfDocument.saveToFile() メソッドを使用して PDF ファイルに変換することができます。以下に詳細な手順を示します。

  • PdfDocument インスタンスを作成します。
  • PdfDocument.loadFromSvg() メソッドを使用してサンプル SVG ファイルを読み込みます。
  • PdfDocument.saveToFile(String filename, FileFormat.PDF) メソッドを使用して SVG ファイルを PDF に変換します。
  • Java
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;

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

        //PdfDocumentインスタンスを作成する
        PdfDocument pdf = new PdfDocument();

        //SVGファイルを読み込む
        pdf.loadFromSvg("sample.svg");

        //SVGをPDFとして保存する
        pdf.saveToFile("SVGToPDF.pdf", FileFormat.PDF);
        pdf.close();
    }
}

Java:SVG を PDF に変換する方法

Java で PDF に SVG 画像を追加する

SVG を PDF に変換するだけでなく、Spire.PDF for Java は SVG 画像を PDF に追加することもサポートしています。このプロセスでは、SVG 画像の位置とサイズを設定することができます。以下に詳細な手順を示します。

  • PdfDocument インスタンスを作成し、PdfDocument.loadFromSvg() メソッドを使用して SVG ファイルを読み込みます。
  • PdfDocument.getPages().get().createTemplate() メソッドを使用して、SVG ファイルの内容に基づいてテンプレートを作成します。
  • 別の PdfDocument インスタンスを作成し、PdfDocument.loadFromFile() メソッドを使用して PDF ファイルを読み込みます。
  • PdfDocument.getPages().get() メソッドを使用して、PDF の指定されたページを取得します。
  • PdfPageBase.getCanvas().drawTemplate() メソッドを使用して、PDF ページ上の指定した位置にカスタムサイズのテンプレートを描画します。
  • PdfDocument.saveToFile() メソッドを使用して結果文書を保存します。
  • Java
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.graphics.PdfTemplate;

import java.awt.*;
import java.awt.geom.Point2D;

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

        //PdfDocumentインスタンスを作成する
        PdfDocument doc1 = new PdfDocument();

        //SVGファイルを読み込む
        doc1.loadFromSvg("sample.svg");

        //SVGファイルの内容に基づいたテンプレートを作成する
        PdfTemplate template = doc1.getPages().get(0).createTemplate();

        //別のPdfDocumentインスタンスを作成する
        PdfDocument doc2 = new PdfDocument();

        //PDFファイルを読み込む
        doc2.loadFromFile("Intro.pdf");

        //PDFファイル内の指定された場所にカスタムサイズのテンプレートを描画する
        doc2.getPages().get(0).getCanvas().drawTemplate(template, new Point2D.Float(100,200), new Dimension(400,280) );

        //結果文書を保存する
        doc2.saveToFile("AddSVGtoPDF.pdf", FileFormat.PDF);
        doc1.close();
        doc2.close();
    }
}

Java:SVG を PDF に変換する方法

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

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

Spire.Doc 11.8.9のリリースを発表できることを嬉しく思います。このバージョンでは、数学式を OfficeMathMLCode に変換する機能や、差し込み印刷時に画像にハイパーリンクを追加する機能が追加されました。さらに、Word から PDF や HTML への変換機能、および HTML から Word への変換機能も強化されました。また、多くの既知の問題も修正されました、例えば、ページ番号のフィールドを追加した後に、フィールドが自動的に更新されない問題などです。詳細は以下の内容を読んでください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
New feature SPIREDOC-9057 数学式を OfficeMathMLCode に変換する機能が追加されました。
    Document doc = new Document();
            doc.LoadFromFile("1.docx");
            StringBuilder stringBuilder = new StringBuilder();

            foreach (Section section in doc.Sections)
            {
                foreach (Paragraph par in section.Body.Paragraphs)
                {
                    foreach (DocumentObject obj in par.ChildObjects)
                    {
                        OfficeMath omath = obj as OfficeMath;
                        if (omath == null) continue;
                        string mathml = omath.ToOfficeMathMLCode();
                        stringBuilder.Append(mathml);
                        stringBuilder.Append("\r\n");
                    }
                }
            }
            File.WriteAllText("1.txt", stringBuilder.ToString());
            doc.Close();
New feature SPIREDOC-9710 差し込み印刷時に画像にハイパーリンクを追加する機能が追加されました。
Document doc = new Document();
                doc.LoadFromFile("Test.docx");
                var fieldNames = new string[] { "MyImage" };
                var fieldValues = new string[] { "logo.png" };

                doc.MailMerge.MergeImageField += new MergeImageFieldEventHandler(MailMerge_MergeImageField);

                doc.MailMerge.Execute(fieldNames, fieldValues);

                doc.SaveToFile("result.docx", FileFormat.Docx);
            }

            void MailMerge_MergeImageField(object sender, MergeImageFieldEventArgs field)
            {
                string filePath = field.FieldValue as string;
                if (!string.IsNullOrEmpty(filePath))
                {
                    field.Image = Image.FromFile(filePath);
                    field.ImageLink = "https://www.e-iceblue.com/";
                }

            }
Bug SPIREDOC-6013 Word文書を読み込む際に「System.InvalidOperationException」の例外が発生する問題が修正されました。
Bug SPIREDOC-8541 WordをPDFに変換した後、ページ分割が一致しない問題が修正されました。
Bug SPIREDOC-8587 WordをPDFに変換する際に「System.NullReferenceException」の例外が発生する問題が修正されました。
Bug SPIREDOC-9197 SparrowからエクスポートされたDocxファイルをHTMLに変換できない問題が修正されました。
Bug SPIREDOC-9213 ページ番号フィールドを追加した後、フィールドが自動的に更新されない問題が修正されました。
Bug SPIREDOC-9253 HTMLをDocに変換した後、リストの文字が正しく表示されない問題が修正されました。
Bug SPIREDOC-9310 HTMLをDocに変換した後、改行タグが無効になる問題が修正されました。
Bug SPIREDOC-9400 DocxをPDFに変換した後、ロゴが欠落する問題が修正されました。
Bug SPIREDOC-9627 RTF文書を読み込む際に「System.NullReferenceException」の例外が発生する問題が修正されました。
Bug SPIREDOC-9640 Latexの数式中の「~」記号の解析が正しく行われない問題が修正されました。
Bug SPIREDOC-9641 WordをPDFに変換した後、TOCが複数のページに分割される問題が修正されました。
Bug SPIREDOC-9684 DocxをHTMLに変換した後、画像がぼやける問題が修正されました。
Bug SPIREDOC-9712 WordをPDFに変換した後、余分なテキストが表示される問題が修正されました。
Bug SPIREDOC-9755 ドキュメントを読み込んで新しいドキュメントとして保存した後、内容が一致しない問題が修正されました。
Bug SPIREDOC-9761 HTML文字列を追加する際にプログラムが一時停止する問題が修正されました。
ここで Spire.Doc 11.8.9をダウンロードする

Spire.PDFViewer 7.12.0のリリースをお知らせいたします。このバージョンでは、PDFファイルを読み込み際に「System.ArgumentNullException」が発生する問題が修正されました。また、PDFファイルを読み込み際に「System.OutOfMemoryException」が発生する問題など、既知の問題が修正されました。詳細は以下の内容を読んでください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
Bug SPIREPDFVIEWER-575 PDFファイルを読み込み際に「System.ArgumentNullException」が発生する問題が修正されました。
Bug SPIREPDFVIEWER-576 PDFファイルを読み込み際に「System.OutOfMemoryException」が発生する問題が修正されました。
ここで Spire.PDFViewer 7.12.0をダウンロードする

PDF ポートフォリオは、テキスト文書、スプレッドシート、プレゼンテーション、画像、ビデオ、オーディオファイルなど、複数のファイルを1つのインタラクティブな PDF コンテナに結合する機能をサポートしています。ユーザーは PDF ポートフォリオを作成することで、プロジェクトに関連するすべての資料を一緒に保存し、ファイルの管理や送信をより簡単に行うことができます。この記事では、Spire.PDF for Java を使用して PDF ポートフォリオを作成する方法を紹介します。

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>9.7.8</version>
    </dependency>
</dependencies>

Java で PDF ポートフォリオの作成とファイルの追加

PDF ポートフォリオは、複数のファイルの集合です。Spire.PDF for Java の PdfDocument.getCollection() メソッドを使用して、PDF ポートフォリオを簡単に作成することができます。その後、PdfCollection.addFile() メソッドを使用してそこにファイルを追加することができます。具体的な手順は以下の通りです。

  • PDF ポートフォリオに追加する必要があるファイルを指定します。
  • PdfDocument インスタンスを作成します。
  • PDF ポートフォリオを作成し、PdfDocument.getCollection().addFile() メソッドを使用してファイルを追加します。
  • PdfDocument.saveToFile() メソッドを使用して結果ファイルを保存します。
  • Java
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;

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

        //ファイルを指定する
        String[] files = new String[] { "Input.pdf", "Sample.docx", "Report.xlsx","Intro.pptx","Logo.jpg" };

        //PdfDocument インスタンスを作成する
        PdfDocument pdf = new PdfDocument();

        //PDF ポートフォリオを作成し、そこにファイルを追加する
        for (int i = 0; i < files.length; i++)
        {
            pdf.getCollection().addFile(files[i]);
        }

        //結果ファイルを保存する
        pdf.saveToFile("PortfolioWithFiles.pdf", FileFormat.PDF);
        pdf.dispose();
    }
}

Java:PDF ポートフォリオを作成する方法

Java で PDF ポートフォリオの作成とフォルダーの追加

PDF ポートフォリオを作成した後、Spire.PDF for Java では、PDF ポートフォリオ内にフォルダを作成してファイルをさらに管理することも可能です。具体的な手順は以下の通りです。

  • PDF ポートフォリオに追加する必要があるファイルを指定します。
  • PdfDocument インスタンスを作成します。
  • PdfDocument.getCollection() メソッドを使用して PDF ポートフォリオを作成します。
  • PdfCollection.getFolders().createSubfolder() メソッドを使用して PDF ポートフォリオにフォルダーを追加します。次に、PdfFolder.addFile() メソッドを使用してフォルダーにファイルを追加します。
  • PdfDocument.saveToFile() メソッドを使用して結果ファイルを保存します。
  • Java
import com.spire.pdf.FileFormat;
import com.spire.pdf.PdfDocument;
import com.spire.pdf.collections.PdfFolder;

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

        //ファイルを指定する
        String[] files = new String[] { "Input.pdf", "Sample.docx", "Report.xlsx","Intro.pptx","Logo.jpg" };

        //PdfDocument インスタンスを作成する
        PdfDocument pdf = new PdfDocument();

        //ポートフォリオを作成し、そこにフォルダーを追加する
        for (int i = 0; i < files.length; i++)
        {
            PdfFolder folder = pdf.getCollection().getFolders().createSubfolder("folder" + i);

            //ファイルをフォルダーに追加する
            folder.addFile(files[i]);
        }

        //結果ファイルを保存する
        pdf.saveToFile("PortfolioWithFolders.pdf", FileFormat.PDF);
        pdf.dispose();
    }
}

Java:PDF ポートフォリオを作成する方法

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

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

マイクロソフト株式会社によって開発された PowerPoint プレゼンテーションは、視覚的に魅力的でインタラクティブなコンテンツを作成するために使用される多目的なファイル形式です。テキストや画像などの豊富な機能と複数の要素を含んでおり、ビジネスの紹介や学術的なスピーチなど、さまざまなシナリオで強力なツールとなっています。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>8.7.3</version>
    </dependency>
</dependencies>

PowerPoint プレゼンテーションからテキストを抽出する

Spire.Presentation for Java では、ParagraphEx.getText() メソッドを使用して、すべてのスライドをループし、各スライドの段落からテキストを抽出することができます。詳細な手順は次のとおりです。

  • Presentation クラスのオブジェクトを作成します。
  • Presentation.loadFromFile() メソッドを使用して PowerPoint プレゼンテーションをロードします。
  • StringBuilder クラスのオブジェクトを作成します。
  • 各スライドの形状と各形状の段落をループします。
  • ParagraphEx.getText() メソッドを呼び出してすべてのスライドからテキストを抽出し、抽出したテキストを StringBuilder オブジェクトに追加します。
  • FileWriter クラスのオブジェクトを作成し、抽出したテキストを新しい .txt ファイルに書き込みます。
  • Java
import com.spire.presentation.*;

import java.io.*;

public class ExtractText {
    public static void main(String[] args) throws Exception {

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

        //PowerPointプレゼンテーションをロードする
        presentation.loadFromFile("sample.pptx");

        //StringBuilderオブジェクトを作成する
        StringBuilder buffer = new StringBuilder();

        //各スライドをループしてテキストを抽出する 
        for (Object slide : presentation.getSlides()) {
            for (Object shape : ((ISlide) slide).getShapes()) {
                if (shape instanceof IAutoShape) {
                    for (Object tp : ((IAutoShape) shape).getTextFrame().getParagraphs()) {
                        buffer.append(((ParagraphEx) tp).getText()+"\n");
                    }
                }
            }
        }

        //抽出したテキストを新しい.txtファイルに書き込む
        FileWriter writer = new FileWriter("output/ExtractAllText.txt");
        writer.write(buffer.toString());
        writer.flush();
        writer.close();
        presentation.dispose();
    }
}

Java:PowerPoint からテキストを抽出する方法

特定のスライドからテキストを抽出する

Spire.Presentation for Java では、特定のスライドからテキストを抽出することもサポートしています。テキストを抽出する前に、Presentation.getSlides().get() メソッドを呼び出して、必要なスライドを取得してください。以下に詳細な手順を示します。

  • Presentation クラスのオブジェクトを作成します。
  • Presentation.loadFromFile() メソッドを使用して PowerPoint プレゼンテーションをロードします。
  • StringBuilder クラスのオブジェクトを作成します。
  • Presentation.getSlides().get() メソッドを呼び出して、最初のスライドを取得します。
  • スライドの各形状と各形状の段落をループします。
  • ParagraphEx.getText() メソッドを呼び出して最初のスライドからテキストを抽出し、抽出したテキストを StringBuilder オブジェクトに追加します。
  • FileWriter クラスのオブジェクトを作成し、抽出したテキストを新しい .txt ファイルに書き込みます。
  • Java
import com.spire.presentation.*;

import java.io.*;

public class ExtractText {
    public static void main(String[] args) throws Exception {

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

        //PowerPointプレゼンテーションをロードする
        presentation.loadFromFile("sample.pptx");

        //StringBuilderオブジェクトを作成する
        StringBuilder buffer = new StringBuilder();

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

        //各形状の段落をループしてテキストを抽出する
        for (Object shape : Slide.getShapes()) {
            if (shape instanceof IAutoShape) {
                for (Object tp : ((IAutoShape) shape).getTextFrame().getParagraphs()) {
                    buffer.append(((ParagraphEx) tp).getText()+"\n");
                }
            }
        }

        //抽出したテキストを新しい.txtファイルに書き込む
        FileWriter writer = new FileWriter("output/ExtractSlideText.txt");
        writer.write(buffer.toString());
        writer.flush();
        writer.close();
        presentation.dispose();
    }
}

Java:PowerPoint からテキストを抽出する方法

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

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

テキスト透かしとは、透明または半透明のロゴや情報をテキストの形式でドキュメント、画像、その他のメディアに追加することを指します。この機能は 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>8.7.3</version>
    </dependency>
</dependencies>

スライドに単一行のテキスト透かしを追加する

Spire.Presentation for Java では、Presentation.getSlides().get().getShapes().appendShape() メソッドを使用してスライドに形状を挿入することで、単一のテキスト透かしを追加できます。次に、IAutoShape.getTextFrame().setText() メソッドを呼び出してテキストを設定します。以下は詳細な手順です。

  • Presentation オブジェクトを作成し、Presentation.loadFromFile() メソッドを使用してサンプルファイルをロードします。
  • 透かし文字列の幅と高さを設定します。
  • Rectangle2D.Double オブジェクトを作成し、Presentation.getSlideSize().getSize().getWidth() メソッドと Presentation.getSlideSize().getSize().getHeight() メソッドを呼び出して、形状の位置とサイズを指定します。
  • Presentation.getSlides().get().getShapes().appendShape() メソッドを使用して、最初のスライドに形状を追加します。
  • 形状のスタイルを設定します。
  • IAutoShape.getTextFrame().setText() を使用して形状のテキストを設定し、IAutoShape.getTextFrame().getTextRange() メソッドを使用して特定の範囲を取得します。
  • テキスト範囲のスタイルを設定します。
  • Presentation.saveToFile() メソッドを使用して結果文書を保存します。
  • Java
import com.spire.presentation.*;
import com.spire.presentation.drawing.FillFormatType;
import java.awt.*;
import java.awt.geom.Rectangle2D;

public class InsertSingleWatermark {
    public static void main(String[] args) throws Exception {

        //Presentationオブジェクトを作成し、サンプルファイルをロードする
        Presentation presentation = new Presentation();
        presentation.loadFromFile("sample.pptx");

        //透かし文字列の幅と高さを設定する
        int width= 400;
        int height= 300;

        //形状の位置とサイズを定義する
        Rectangle2D.Double rect = new Rectangle2D.Double((presentation.getSlideSize().getSize().getWidth() - width) / 2,
                (presentation.getSlideSize().getSize().getHeight() - height) / 2, width, height);

        //最初のスライドに形状を追加する
        IAutoShape shape = presentation.getSlides().get(0).getShapes().appendShape(ShapeType.RECTANGLE, rect);

        //形状のスタイルを設定する
        shape.getFill().setFillType(FillFormatType.NONE);
        shape.getShapeStyle().getLineColor().setColor(Color.white);
        shape.setRotation(-45);
        shape.getLocking().setSelectionProtection(true);
        shape.getLine().setFillType(FillFormatType.NONE);

        //形状にテキストを追加する
        shape.getTextFrame().setText("Confidential");
        PortionEx textRange = shape.getTextFrame().getTextRange();

        //テキスト範囲のスタイルを設定する
        textRange.getFill().setFillType(FillFormatType.SOLID);
        textRange.setFontHeight(50);
        Color color = new Color(237,129,150,200);
        textRange.getFill().getSolidColor().setColor(color);


        //結果文書を保存する
        presentation.saveToFile("output/SingleWatermark.pptx", FileFormat.PPTX_2010);
        presentation.dispose();
    }
}

Java:PowerPoint にテキスト透かしを追加する方法

スライドに複数行のテキスト透かしを追加する

ループ内で、Presentation.getSlides().get().getShapes().appendShape() メソッドを複数回呼び出すことで、異なる位置に複数の長方形の形状を追加します。これにより、スライドに複数行のテキスト透かしを追加する効果が実現されます。以下は詳細な手順です。

  • Presentation オブジェクトを作成し、Presentation.loadFromFile() メソッドを使用してサンプルファイルをロードします。
  • 透かしのテキストを設定し、透かしテキストのサイズを測定します。
  • 透かしの x 座標と y 座標を初期化します。次に、ループ内で Presentation.getSlides().get().getShapes().appendShape() メソッドを複数回呼び出して、スライドに複数の長方形の形状を追加します。
  • 形状のスタイルを設定します。
  • IAutoShape.getTextFrame().setText() メソッドを使用して形状にテキストを追加します。
  • IAutoShape.getTextFrame().getTextRange() メソッドを使用して特定の範囲を取得します。
  • テキスト範囲のスタイルを設定します。
  • Presentation.saveToFile() メソッドを使用して結果文書を保存します。
  • Java
import com.spire.pdf.graphics.PdfTrueTypeFont;
import com.spire.presentation.*;
import com.spire.presentation.drawing.FillFormatType;
import java.awt.*;
import java.awt.geom.Dimension2D;
import java.awt.geom.Rectangle2D;

public class InsertTiledWatermark {
    public static void main(String[] args) throws Exception {

        //Presentationオブジェクトを作成し、サンプルファイルをロードする
        Presentation presentation = new Presentation();
        presentation.loadFromFile("sample.pptx");

        //透かしテキストを設定する
        String watermarkText = "Confidential";

        //透かしテキストのサイズを測定する
        Font font = new java.awt.Font("Arial", java.awt.Font.BOLD, 20);
        PdfTrueTypeFont trueTypeFont = new PdfTrueTypeFont(font);
        Dimension2D strSize = trueTypeFont.measureString(watermarkText);

        //x座標とy座標を初期化する
        float x = 30;
        float y = 80;

        for (int rowNum = 0; rowNum < 4; rowNum++) {
            for (int colNum = 0; colNum < 4; colNum++) {

                //最初のスライドに長方形の形状を追加する
                Rectangle2D rect = new Rectangle2D.Float(x, y, (float) strSize.getWidth() + 10, (float) strSize.getHeight());
                IAutoShape shape = presentation.getSlides().get(0).getShapes().appendShape(ShapeType.RECTANGLE, rect);

                //形状のスタイルを設定する
                shape.getFill().setFillType(FillFormatType.NONE);
                shape.getShapeStyle().getLineColor().setColor(new Color(1, 1, 1, 0));
                shape.setRotation(-45);
                shape.getLocking().setSelectionProtection(true);
                shape.getLine().setFillType(FillFormatType.NONE);

                //形状に透かしテキストを追加する
                shape.getTextFrame().setText(watermarkText);
                PortionEx textRange = shape.getTextFrame().getTextRange();

                //テキスト範囲のスタイルを設定する
                textRange.getFill().setFillType(FillFormatType.SOLID);
                textRange.setLatinFont(new TextFont(trueTypeFont.getName()));
                textRange.setFontMinSize(trueTypeFont.getSize());
                Color color = new Color(237,129,150,200);
                textRange.getFill().getSolidColor().setColor(color);

                x += (100 + strSize.getWidth());

            }
            x = 30;
            y += (100 + strSize.getHeight());
        }

        //結果文書を保存する
        presentation.saveToFile("output/TiledWatermark.pptx", FileFormat.PPTX_2013);
        presentation.dispose();
    }
}

Java:PowerPoint にテキスト透かしを追加する方法

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

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

Spire.XLS for Java 13.8.1のリリースをお知らせいたします。今回の更新では、最初のページのヘッダーとフッターに画像を設定したり、画像のハイパーリンクを取得したりすることがサポートされました。また、ExcelからPDFや画像への変換機能も強化されました。さらに、最大行の設定が効かない問題など、既知の問題も修正されました。詳細については、以下の内容をご覧ください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
New feature SPIREXLS-4797 最初のページのヘッダーとフッターに画像を設定することがサポートされました。
//最初のページのヘッダーの画像を設定する
worksheet.getPageSetup().setFirstLeftHeaderImage(img_LFH);
worksheet.getPageSetup().setCenterHeaderImage(img_LCH);
worksheet.getPageSetup().setRightHeaderImage(img_LRH);
//最初のページのフッターの画像を設定する
worksheet.getPageSetup().setLeftFooterImage(img_LFF);
worksheet.getPageSetup().setCenterFooterImage(img_LCF);
worksheet.getPageSetup().setRightHeaderImage(img_LRF);
//画像のサイズを設定する
worksheet.getPageSetup().setFirstLeftHeaderPictureHeight(50);
worksheet.getPageSetup().setFirstLeftHeaderPictureWidth(50);
worksheet.getPageSetup().setFirstCenterHeaderPictureHeight(50);
worksheet.getPageSetup().setFirstCenterHeaderPictureWidth(50);
worksheet.getPageSetup().setFirstRightHeaderPictureHeight(50);
worksheet.getPageSetup().setFirstRightHeaderPictureWidth(50);
New feature SPIREXLS-4831 画像のハイパーリンクの取得がサポートされました。
ExcelPicture picture = sheet.getPictures().get(0);
HyperLink link = picture.getHyperLink();
String address = link.getAddress();
Bug SPIREXLS-4078 TomcatでExcelを保存する際の数式の文字化け問題が修正されました。
Bug SPIREXLS-4737 ExcelからPDFに変換した後、Adobeでファイルを開く際にエラーが発生する問題が修正されました。
Bug SPIREXLS-4770 Excelから画像に変換する際に、内容のフォーマットが正しくない問題が修正されました。
Bug SPIREXLS-4800 最大行の設定が効かない問題が修正されました。
Bug SPIREXLS-4821
SPIREXLS-4840
ExcelからPDFに変換する際に、プログラムが「NullPointerException」例外を発生する問題が修正されました。
Bug SPIREXLS-4822 WinServer2012でExcelを保存した後、ドロップダウンリストの内容が文字化けする問題が修正されました。
Bug SPIREXLS-4829 新しいバージョンのWPSで作成されたExcelファイルを読み込む際に、プログラムが「NullPointerException」例外を発生する問題が修正されました。
Bug SPIREXLS-4837
SPIREXLS-4839
Excelを読み込む際に、プログラムが「NullPointerException」例外を発生する問題が修正されました。
ここで Spire.XLS for Java 13.8.1をダウンロードする