チュートリアル

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

Koohji

Koohji

Spire.XLS 13.7.0のリリースを発表できることを嬉しく思います。このバージョンでは、NETWORKDAYS.INTL関数をサポートする機能が追加されました。また、グラフを画像に変換した後に内容が正しくない問題など、既知の問題も修正されました。詳細は以下の内容を読んでください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
New feature SPIREXLS-4712 NETWORKDAYS.INTL関数をサポートする機能が追加されました。
Bug SPIREXLS-411 追加された数値が日付形式で表示される問題が修正されました。
Bug SPIREXLS-698 グラフを画像に変換した後に、内容が正しくない問題が修正されました。
Bug SPIREXLS-883 分割ページでセルの上枠が印刷されない問題が修正されました。
Bug SPIREXLS-891 シェイプを削除するときに、プログラムが「ArgumentOutOfRangeException」をスローする問題が修正されました。
Bug SPIREXLS-1158 ピボットテーブルの特定行のフォント色が変更しても効果がない問題が修正されました。
Bug SPIREXLS-2286 ピボットテーブルのフォントが変更しても効果がない問題が修正されました。
Bug SPIREXLS-4711 ExcelをHTMLに変換した後に破線が失われる問題が修正されました。
Bug SPIREXLS-4722 CalculateAllValue()メソッドを使用する際にプログラムが「System.NullReferenceException」をスローする問題が修正されました。
Bug SPIREXLS-4728 結合セルにフィルタを追加した後、フィルタボタンが機能しなくなる問題が修正されました。
Bug SPIREXLS-4738 行を削除した後に残りの行数が正しくならない問題が修正されました。
Bug SPIREXLS-4748 worksheet.ExportDataTable()メソッドを使用してデータをエクスポートする際に、形式が正しくならない問題が修正されました。
ここで Spire.XLS 13.7.0をダウンロードする

繰り返し透かしは、複数行の透かしとも呼ばれ、Word ドキュメントのページ上に一定の間隔で複数回表示される透かしの一種です。通常の透かしに比べ、繰り返し透かしは削除や隠蔽が難しいため、不正コピーや不正配布の防止に効果的です。この記事では、Spire.Doc for 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>11.6.0</version>
    </dependency>
</dependencies>

Word ドキュメントに繰り返しテキスト透かしを追加する

Word ドキュメントのヘッダーに指定した間隔で繰り返しワードアートを追加することで、Word ドキュメントに繰り返しテキスト透かしを挿入することができます。詳しい手順は次のとおりです。

  • Document クラスのオブジェクトを作成します。
  • Document.loadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • ShapeObject クラスのオブジェクトを作成し、ShapeObject.getWordArt().setText() メソッドを使用してワードアートのテキストを設定します。
  • 回転角度と垂直方向の繰り返し回数、水平方向の繰り返し回数を指定し ます。
  • ShapeObject クラスのメソッドを使用して、図形の書式を設定します。
  • Paragraph.getChildObjects().add(ShapeObject) メソッドを使用して、各セクションのヘッダーにワードアート図形を指定された間隔で複数回追加することにより、各セクションに繰り返し透かしを挿入するために、ドキュメント内のセクションをループします。
  • Document.saveToFile() メソッドを使用してドキュメントを保存します。
  • Java
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.HeaderFooter;
import com.spire.doc.Section;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.documents.ShapeLineStyle;
import com.spire.doc.documents.ShapeType;
import com.spire.doc.fields.ShapeObject;

import java.awt.*;

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

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

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

        //ShapeObjectクラスのオブジェクトを作成し、アートフォントのテキストを設定する
        ShapeObject shape = new ShapeObject(doc, ShapeType.Text_Plain_Text);
        shape.getWordArt().setText("オリジナル");

        //テキスト透かしの回転角度と、垂直方向と水平方向の繰り返し回数を設定する
        double rotation = 315;
        int ver = 5;
        int hor = 3;

        //ワードアートの書式を設定する
        shape.setWidth(60);
        shape.setHeight(20);
        shape.setVerticalPosition(30);
        shape.setHorizontalPosition(20);
        shape.setRotation(rotation);
        shape.getWordArt().setFontFamily("HarmonyOS Sans SC");
        shape.setFillColor(Color.BLUE);
        shape.setLineStyle(ShapeLineStyle.Single);
        shape.setStrokeColor(Color.CYAN);
        shape.setStrokeWeight(1);

        //ドキュメントのセクションをループする
        for (Section section : (Iterable) doc.getSections()
        ) {
            //セクションのヘッダーを取得する
            HeaderFooter header = section.getHeadersFooters().getHeader();
            //ヘッダーに段落を追加する
            Paragraph paragraph = header.addParagraph();
            for (int i = 0; i < ver; i++) {
                for (int j = 0; j < hor; j++) {
                    //ヘッダーに段落を追加する
                    shape = (ShapeObject) shape.deepClone();
                    shape.setVerticalPosition((float) (section.getPageSetup().getPageSize().getHeight()/ver * i  + Math.sin(rotation) * shape.getWidth()/2));
                    shape.setHorizontalPosition((float) ((section.getPageSetup().getPageSize().getWidth()/hor - shape.getWidth()/2) * j));
                    paragraph.getChildObjects().add(shape);
                }
            }
        }

        //ドキュメントを保存する
        doc.saveToFile("繰り返しテキスト透かし.docx", FileFormat.Auto);
        doc.dispose();
    }
}

Java:Word で繰り返し透かしを挿入する方法

Word ドキュメントに繰り返し画像透かしを追加する

同様に、ヘッダーに一定の間隔で繰り返し画像を追加することで、Wordドキュメントに繰り返し画像透かしを挿入することができます。詳しい手順は次のとおりです。

  • Document クラスのオブジェクトを作成します。
  • Document.loadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • DocPicture.loadImage() メソッドを使用して画像を読み込みます。
  • DocPicture.setTextWrappingStyle(TextWrappingStyle.Behind) メソッドを使用して、画像の文字列の折り返しスタイルを背面に設定します。
  • 垂直方向の繰り返し回数と水平方向の繰り返し回数を指定します。
  • Paragraph.getChildObjects().add(DocPicture) メソッドを使用して、各セクションのヘッダーに画像を指定された間隔で複数回追加することにより、各セクションに繰り返し透かしを挿入するために、ドキュメント内のセクションをループします。
  • Document.saveToFile() メソッドを使用してドキュメントを保存します。
  • Java
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.HeaderFooter;
import com.spire.doc.Section;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.documents.TextWrappingStyle;
import com.spire.doc.fields.DocPicture;

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

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

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

        //画像を読み込む
        DocPicture pic = new DocPicture(doc);
        pic.loadImage("透かし.png");

        //画像のテキストの折り返しを背面に設定する
        pic.setTextWrappingStyle(TextWrappingStyle.Behind);

        //垂直方向と水平方向の繰り返し回数を設定する
        int ver = 4;
        int hor = 3;

        //ドキュメントのセクションをループする
        for (Section section : (Iterable) doc.getSections()
        ) {
            //セクションのヘッダーを取得する
            HeaderFooter header = section.getHeadersFooters().getHeader();
            //ヘッダーに段落を追加する
            Paragraph paragraph = header.addParagraph();
            for (int i = 0; i < ver; i++) {
                for (int j = 0; j < hor; j++) {
                    //ヘッダーに画像を追加する
                    pic = (DocPicture) pic.deepClone();
                    pic.setVerticalPosition((float) ((section.getPageSetup().getPageSize().getHeight()/ver) * i));
                    pic.setHorizontalPosition((float) (section.getPageSetup().getPageSize().getWidth()/hor - pic.getWidth()/2) * j);
                    paragraph.getChildObjects().add(pic);
                }
            }
        }

        //ドキュメントを保存する
        doc.saveToFile("繰り返し画像透かし.docx", FileFormat.Auto);
        doc.dispose();
    }
}

Java:Word で繰り返し透かしを挿入する方法

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

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

Spire.Presentation 8.7.0のリリースを発表できることをうれしく思います。このバージョンでは、PPTX 2016およびPPTX 2019がサポートされています。また、グラフの横軸から軸線までの距離の設定にもサポートされています。さらに、PPTファイルを分割した後に生成されたファイルを開くことができなかった問題など、既知の問題が修正されました。詳細は以下の内容を読んでください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
New feature SPIREPPT-2244 PPTX 2016およびPPTX 2019がサポートされています。
Spire.Presentation.FileFormat.Pptx2016
Spire.Presentation.FileFormat.Pptx2019
New feature SPIREPPT-2266 グラフの横軸から軸線までの距離の設定にがサポートされています。
Presentation ppt = new Presentation();
IChart chart = ppt.Slides[0].Shapes.AppendChart(ChartType.ColumnClustered, new RectangleF(50, 50, 400, 400));

//PrimaryCategory軸を取得する
IChartAxis chartAxis = chart.PrimaryCategoryAxis;

//「軸からの距離」を設定する
chartAxis.LabelsDistance = 200;

//ファイルに保存する
ppt.SaveToFile(outputFile, FileFormat.Pptx2013);
Bug SPIREPPT-2279 PPTファイルを分割した後に生成されたファイルを開くことができなかった問題が修正されました。
Bug SPIREPPT-2280 PPTファイルを読み込む際に、プログラムがヌルポインタエラーを報告する問題が修正されました。
Bug SPIREPPT-2285 棒グラフが列に切り替わるかどうかを判断する際に、プログラムがエラーを報告する問題が修正されました。
ここで Spire. Presentation 8.7.0をダウンロードする

Spire.PDF 9.7.0のリリースを発表できることを嬉しく思います。このバージョンでは、高さに合わせたズームレベルのサポートが追加されました。また、構造化された表を含むラベル付きPDFファイルの作成もサポートされています。PDFからPDF/A3AおよびPDF/A1Bへの変換機能も強化されました。さらに、PDFを印刷する際に印章の回転が歪む問題など、いくつかの既知の問題も修正されました。詳細は以下の内容を読んでください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
New feature SPIREPDF-5964 構造化された表を含むラベル付きPDFファイルの作成がサポートされています。
PdfDocument doc = new PdfDocument();
PdfPageBase page = doc.Pages.Add(PdfPageSize.A4, new PdfMargins(20));
page.SetTabOrder(TabOrder.Structure);
PdfTaggedContent taggedContent = new PdfTaggedContent(doc);
taggedContent.SetLanguage("en-US");
taggedContent.SetTitle("test");
taggedContent.SetPdfUA1Identification();
PdfTrueTypeFont font = new PdfTrueTypeFont(new System.Drawing.Font("Times New Roman", 14), true);
PdfSolidBrush brush = new PdfSolidBrush(Color.Black);
PdfStructureElement document = taggedContent.StructureTreeRoot.AppendChildElement(PdfStandardStructTypes.Document);
PdfStructureElement heading1 = document.AppendChildElement(PdfStandardStructTypes.HeadingLevel1);
heading1.BeginMarkedContent(page);
string headingText = "What is a Tagged PDF?";
page.Canvas.DrawString(headingText, font, brush, new PointF(0, 0));
heading1.EndMarkedContent(page);
PdfStructureElement paragraph = document.AppendChildElement(PdfStandardStructTypes.Paragraph);
paragraph.BeginMarkedContent(page);
string paragraphText = ""Tagged PDF" doesn’t seem like a life-changing term. But for some, it is. For people who are " +
    "blind or have low vision and use assistive technology (such as screen readers and connected Braille displays) to " +
    "access information, an untagged PDF means they are missing out on information contained in the document because assistive " +
    "technology cannot "read" untagged PDFs.  Digital accessibility has opened up so many avenues to information that were once " +
    "closed to people with visual disabilities, but PDFs often get left out of the equation.";
RectangleF rect = new RectangleF(0, 30, page.Canvas.ClientSize.Width, page.Canvas.ClientSize.Height);
page.Canvas.DrawString(paragraphText, font, brush, rect);
paragraph.EndMarkedContent(page);
PdfStructureElement figure = document.AppendChildElement(PdfStandardStructTypes.Figure);
figure.BeginMarkedContent(page);
PdfImage image = PdfImage.FromFile(TestUtil.DataPath + "ImgFiles/Bug_3938.png");
page.Canvas.DrawImage(image, new PointF(0, 150));
figure.EndMarkedContent(page);

PdfStructureElement table = document.AppendChildElement(PdfStandardStructTypes.Table);
PdfTable pdfTable = new PdfTable();
pdfTable.Style.DefaultStyle.Font = font;
System.Data.DataTable dataTable = new System.Data.DataTable();
dataTable.Columns.Add("Name");
dataTable.Columns.Add("Age");
dataTable.Columns.Add("Sex");
dataTable.Rows.Add(new string[] { "John", "22", "Male" });
dataTable.Rows.Add(new string[] { "Katty", "25", "Female" });
pdfTable.DataSource = dataTable;
pdfTable.Style.ShowHeader = true;
pdfTable.StructureElement = table;
pdfTable.Draw(page.Canvas, new PointF(0, 280), 300f);

doc.SaveToFile("1.pdf");
doc.Dispose();
New feature SPIREPDF-6038 高さに合わせたズームレベルのサポートが追加されました。
PdfDocument myPdf = new PdfDocument("test.pdf");
PdfPageBase page = myPdf .Pages[0];
PdfDestination dest = new PdfDestination(page, new PointF(-40f, -40f));
dest.Mode = PdfDestinationMode.FitV; 
PdfGoToAction gotoaction = new PdfGoToAction(dest);
myPdf.AfterOpenAction = gotoaction;
myPdf.ViewerPreferences.PageMode = PdfPageMode.UseOutlines;
myPdf.SaveToFile("FitBH.pdf");
myPdf.Close(); 
Bug SPIREPDF-6011 PDFをPDF/A3Aに変換する際に、アプリケーションが「System.NullReferenceException」をスローする問題が修正されました。
Bug SPIREPDF-6032 PDFをPDF/A1Bに変換した後の内容が正しくない問題が修正されました。
Bug SPIREPDF-6047 PDFを画像に変換したり、PDFを印刷する際にフォントが変更される問題が修正されました。
Bug SPIREPDF-6051 ページからテキストを抽出する際に、アプリケーションが「System.NullReferenceException」をスローする問題が修正されました。
Bug SPIREPDF-6076 PDFを印刷する際に印章の回転が歪む問題が修正されました。
ここで Spire.PDF 9.7.0をダウンロードする

チーム作業が必要なかなり長い Word ドキュメントがある場合、作業を効率化するためにドキュメントをいくつかの短いファイルに分割し、それぞれの担当者に割り当てる必要があるかもしれません。この記事では、手作業でカット&ペーストする代わりに、Spire.Doc for 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>11.6.0</version>
    </dependency>
</dependencies>

Word ドキュメントを改ページで分割する

Word ドキュメントには、改ページで区切られた複数のページを含めることができます。Word ドキュメントを改ページで分割するには、以下の手順とコードを参照してください。

  • Document のインスタンスを作成します。
  • Document.loadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • 新しい Word ドキュメントを作成し、そこにセクションを追加します。
  • 元のドキュメントの各セクションにあるすべてのボディの子オブジェクトを走査し、子オブジェクトが段落か表かを判断します。
  • セクションの子オブジェクトが表の場合は、Section.getBody().getChildObjects().add() メソッドを使用して、新規ドキュメントのセクションに直接追加します。
  • セクションの子オブジェクトが段落の場合は、まずその段落オブジェクトを新規ドキュメントのセクションに追加します。次に、段落のすべての子オブジェクトを走査し、子オブジェクトが改ページかどうかを判定します。
  • 子オブジェクトが改ページであれば、そのインデックスを取得し、インデックスでその段落から改ページを削除します。
  • 新しい Word ドキュメントを保存し、上記の処理を繰り返します。
  • Java
import com.spire.doc.*;
import com.spire.doc.documents.BreakType;
import com.spire.doc.documents.Paragraph;

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

        //Documentのインスタンスを作成する
        Document original = new Document();

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

        //新しいWordドキュメントを作成し、そこにセクションを追加する
        Document newWord = new Document();
        Section section = newWord.addSection();
        int index = 0;

        //原文のすべてのセクションをループする
        for (int s = 0; s < original.getSections().getCount(); s++) {
            Section sec = original.getSections().get(s);

            //各セクションに含まれるボディーの子オブジェクトをすべてループする
            for (int c = 0; c < sec.getBody().getChildObjects().getCount(); c++) {
                DocumentObject obj = sec.getBody().getChildObjects().get(c);
                if (obj instanceof Paragraph) {
                    Paragraph para = (Paragraph) obj;
                    sec.cloneSectionPropertiesTo(section);

                    //元のセクションの段落オブジェクトを新しいドキュメントのセクションに追加する
                    section.getBody().getChildObjects().add(para.deepClone());
                    for (int i = 0; i < para.getChildObjects().getCount(); i++) {
                        DocumentObject parobj = para.getChildObjects().get(i);
                        if (parobj instanceof Break) {
                            Break break1 = (Break) parobj;
                            if (break1.getBreakType().equals(BreakType.Page_Break)) {

                                //段落内の改ページのインデックスを取得する
                                int indexId = para.getChildObjects().indexOf(parobj);

                                //段落から改ページを削除する
                                Paragraph newPara = (Paragraph) section.getBody().getLastParagraph();
                                newPara.getChildObjects().removeAt(indexId);

                                //新しいWordドキュメントを保存する
                                newWord.saveToFile("Output/ドキュメント/ドキュメント"+index+".docx", FileFormat.Docx);
                                index++;

                                //新しいWordドキュメントを作成し、そこにセクションを追加する
                                newWord = new Document();
                                section = newWord.addSection();

                                //元のセクションの段落オブジェクトを新しいドキュメントのセクションに追加する
                                section.getBody().getChildObjects().add(para.deepClone());
                                if (section.getParagraphs().get(0).getChildObjects().getCount() == 0) {

                                    //最初の空白段落を削除する
                                    section.getBody().getChildObjects().removeAt(0);
                                } else {

                                    //改ページの前に子オブジェクトを削除する
                                    while (indexId >= 0) {
                                        section.getParagraphs().get(0).getChildObjects().removeAt(indexId);
                                        indexId--;
                                    }
                                }
                            }
                        }
                    }
                }
                if (obj instanceof Table) {

                    //元のセクションの表のオブジェクトを新しいドキュメントのセクションに追加する
                    section.getBody().getChildObjects().add(obj.deepClone());
                }
            }
        }

        //ドキュメントを保存する
        newWord.saveToFile("Output/ドキュメント/ドキュメント"+index+".docx", FileFormat.Docx);
    }
}

Java:Word ドキュメントを分割する方法

Word ドキュメントをセクション区切りで分割する

Word ドキュメントでは、セクションは独自のページ書式を含むドキュメントの一部です。複数のセクションを含むドキュメントについては、Spire.Doc for Java はセクション区切りによるドキュメントの分割もサポートしています。詳しい手順は以下の通りです。

  • Document のインスタンスを作成します。
  • Document.LoadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • 新しい Word ドキュメントのオブジェクトを定義します。
  • 元の Word ドキュメントのすべてのセクションを走査します。
  • Section.deepClone() メソッドを使用して、元のドキュメントの各セクションをクローンします。
  • Document.getSections().add() メソッドを使用して、コピーしたセクションを新しいセクションとして新しいドキュメントに追加します。
  • Document.saveToFile() メソッドを使用して、結果のドキュメントを保存します。
  • Java
import com.spire.doc.Document;
import com.spire.doc.Section;

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

        //Documentのインスタンスを作成する
        Document document = new Document();

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

        //新しいWordドキュメントのオブジェクトを定義する
        Document newWord;

        //元のWordドキュメントのすべてのセクションをループする
        for (int i = 0; i < document.getSections().getCount(); i++) {
            newWord = new Document();

            //元の文書の各セクションをコピーし、新しいセクションとして新しい文書に追加する
            newWord.getSections().add(document.getSections().get(i).deepClone());

            //結果ドキュメントを保存する
            newWord.saveToFile("ドキュメント1/ドキュメント" + i + ".docx");
        }
    }
}

Java:Word ドキュメントを分割する方法

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

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

Word ドキュメントに改ページを挿入することで、Enter キーを連打することなく、好きな場所でページを終了し、新しいページを一度に開始することができます。今回は、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.12.2</version>
    </dependency>
</dependencies>

特定の段落後に改ページを挿入する

特定の段落後に改ページを挿入する手順は以下の通りです。

  • Document のインスタンスを作成します。
  • Document.loadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • Document.getSections().get(sectionIndex) メソッドを使用して、目的のセクションを取得します。
  • Section.getParagraphs().get(paragraphIndex) メソッドを使用して、目的の段落を取得します。
  • Paragraph.appendBreak(BreakType.Page_Break) メソッドを使用して、段落に改ページを追加します。
  • Document.saveToFile() メソッドを使用して、結果ドキュメントを保存します。
  • Java
import com.spire.doc.Document;
import com.spire.doc.Section;
import com.spire.doc.documents.BreakType;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.FileFormat;

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

        //Documentのインスタンスを作成する
        Document document = new Document();

        //Wordドキュメントを読み込む
        document.loadFromFile("C:/自分を見失う.docx");

        //最初のセクションを取得する
        Section section = document.getSections().get(0);

        //セクションの3段落目を取得する
        Paragraph paragraph = section.getParagraphs().get(2);

        //段落に改ページを付加する
        paragraph.appendBreak(BreakType.Page_Break);

        //結果ドキュメントを保存する
        document.saveToFile("改ページの挿入.docx", FileFormat.Docx_2013);
    }
}

Java:Word ドキュメントに改ページを挿入する方法

特定のテキストの後に改ページする

特定のテキストの後に改ページを挿入する手順は次のとおりです。

  • Document のインスタンスを作成します。
  • Document.loadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • Document.findString() メソッドを使用して、特定のテキストを検索します。
  • TextSelection.getAsOneRange() メソッドを使用して、検索されたテキストのテキスト範囲にアクセスします。
  • ParagraphBase.getOwnerParagraph() メソッドを使用して、テキスト範囲がある段落を取得します。
  • Paragraph.getChildObjects().indexOf() メソッドを使用して、段落内のテキスト範囲の位置インデックスを取得します。
  • Break のインスタンスを作成し、改ページを作成します。
  • Paragraph.getChildObjects().insert() メソッドを使用して、検索されたテキストの後に改ページを挿入します。
  • Document.saveToFile() メソッドを使用して、結果ドキュメントを保存します。
  • Java
import com.spire.doc.Break;
import com.spire.doc.Document;
import com.spire.doc.FileFormat;
import com.spire.doc.documents.BreakType;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.documents.TextSelection;
import com.spire.doc.fields.TextRange;

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

        //Documentのインスタンスを作成する
        Document document = new Document();

        //Wordドキュメントを読み込む
        document.loadFromFile("C:/自分を見失う.docx");

        //特定のテキストを検索する
        TextSelection selection = document.findString("精神疾患", true, true);
        //検索されたテキストのテキスト範囲を取得する
        TextRange range = selection.getAsOneRange();
        //テキスト範囲がある段落を取得する
        Paragraph paragraph = range.getOwnerParagraph();
        //段落内のテキスト範囲の位置インデックスを取得する
        int index = paragraph.getChildObjects().indexOf(range);

        //改ページを作成する
        Break pageBreak = new Break(document, BreakType.Page_Break);
        //検索されたテキストの後に改ページを挿入する
        paragraph.getChildObjects().insert(index + 1, pageBreak);

        //結果ドキュメントを保存する
        document.saveToFile("テキストの後に改ページを挿入.docx", FileFormat.Docx_2013);
    }
}

Java:Word ドキュメントに改ページを挿入する方法

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

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

Spire.Doc for C++ 11.6.3を発表できることを嬉しく思います。このバージョンでは、アプリケーションがスローする例外を Try Catch でキャッチできない問題が修正されました。詳細は以下の内容を読んでください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
Bug SPIREDOC-9518 アプリケーションがスローする例外を Try Catch でキャッチできない問題が修正されました。
ここで Spire.Doc for C++ 11.6.3をダウンロードする

Excel ファイルに文書プロパティを追加することは、ファイルに関する追加のコンテキストと情報を提供する簡単で便利な機能です。 文書プロパティには、標準的なものとカスタマイズされたものがあります。 標準の文書プロパティは、著者、タイトル、件名など、文書に関する基本的な情報で、文書の検索や特定を容易にするのに役立ちます。 カスタム文書プロパティは、プロジェクト名、クライアント名、部門長など、文書に関する特定の詳細を追加することができます。 この機能により、文書のデータに関連する情報やコンテキストを提供することもできます。この記事では、Spire.XLS for Java を使用して標準の文書プロパティとカスタム文書プロパティを Excel への追加する方法を紹介します。

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

まず、Spire.XLS 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.xls</artifactId>
        <version>13.6.5</version>
    </dependency>
</dependencies>

Java で Excel への標準文書プロパティを追加する

標準の文書プロパティは Microsoft Excel によって事前に定義されており、タイトル、件名、作成者、キーワード、コメントなどのフィールドが含まれています。次の手順は、Spire.XLS for Java を使用して Java で Excel への標準文書プロパティを追加する方法を示しています。

  • Workbook クラスのインスタンスを初期化します。
  • Workbook.loadFromFile(String fileName) メソッドを使用して Excel ファイルをロードします。
  • Workbook.getDocumentProperties().setTitle(String value)Workbook.getDocumentProperties().setSubject(String value)Workbook.getDocumentProperties().setAuthor(String value) メソッドを使用して、タイトル、件名、作成者などの標準文書プロパティをファイルに追加します。
  • Workbook.saveToFile(String fileName, ExcelVersion version) メソッドを使用して結果ファイルを保存します。
  • Java
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;

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

        //Workbook クラスのインスタンスを初期化する
        Workbook workbook = new Workbook();

        //Excel ファイルを読み込む
        workbook.loadFromFile("sample.xlsx");

        //ファイルに標準的な文書プロパティを追加する
        workbook.getDocumentProperties().setTitle("文書プロパティを追加する");
        workbook.getDocumentProperties().setSubject("Spire.XLS for Java Demo");
        workbook.getDocumentProperties().setAuthor("Shaun");
        workbook.getDocumentProperties().setManager("Bill");
        workbook.getDocumentProperties().setCompany("E-iceblue");
        workbook.getDocumentProperties().setCategory("Spire.XLS for Java");
        workbook.getDocumentProperties().setKeywords("Excel文書プロパティ");

        //結果ファイルを保存する
        workbook.saveToFile("AddStandardDocumentProperties.xlsx", ExcelVersion.Version2016);
        workbook.dispose();
    }
}

Java:Excel への文書プロパティを追加する方法

Java で Excel へのカスタム文書プロパティを追加する

カスタム文書プロパティはユーザー定義であり、特定のニーズや要件に合わせて調整できます。カスタム文書プロパティのデータ型は、「はい/いいえ」、「テキスト」、「数値」、および「日付」です。次の手順は、Spire.XLS for Java を使用して、Java で Excel へのカスタム文書プロパティを追加する方法を示しています。

  • Workbook クラスのインスタンスを初期化します。
  • Workbook.loadFromFile(String fileName) メソッドを使用して Excel ファイルをロードします。
  • Workbook.getCustomDocumentProperties().add(String var1, boolean var2) メソッドを使用して、「はい/いいえ」タイプのカスタム文書プロパティをファイルに追加します。
  • Workbook.getCustomDocumentProperties().add(String var1, String var2) メソッドを使用して、「テキスト」タイプのカスタム文書プロパティをファイルに追加します。
  • Workbook.getCustomDocumentProperties().add(String var1, int var2) メソッドを使用して、「数値」タイプのカスタム文書プロパティをファイルに追加します。
  • Workbook.getCustomDocumentProperties().add(String var1, Date var2) メソッドを使用して、「日付」タイプのカスタム文書プロパティをファイルに追加します。
  • Workbook.saveToFile(String fileName, ExcelVersion version) メソッドを使用して結果ファイルを保存します。
  • Java
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;

import java.util.Date;

public class AddCustomDocumentProperties {
    public static void main(String[] args) {
        //Workbook クラスのインスタンスを初期化する
        Workbook workbook = new Workbook();

        //Excel ファイルを読み込む
        workbook.loadFromFile("sample.xlsx");
        
        //「はい/いいえ」カスタム文書プロパティを追加する
        workbook.getCustomDocumentProperties().add("修正", true);

        //「テキスト」カスタム文書プロパティを追加する
        workbook.getCustomDocumentProperties().add("名前", "E-iceblue");

        //「数値」カスタム文書プロパティを追加する
        workbook.getCustomDocumentProperties().add("電話番号", 81705109);

        //「日付」カスタム文書プロパティを追加する
        workbook.getCustomDocumentProperties().add("日付", new Date());

        //結果ファイルを保存する
        workbook.saveToFile("AddCustomDocumentProperties.xlsx", ExcelVersion.Version2013);
        workbook.dispose();
    }
}

Java:Excel への文書プロパティを追加する方法

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

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

XPS は、XML Paper Specification の略称であり、Microsoft が開発した固定レイアウトファイル形式です。一部の動的なコンテンツやレイアウト変更を許容する形式とは異なり、XPS は文書のレイアウトを保持し、視覚的外観を維持しています。XPS ファイルは、Microsoft XPS Viewerで簡単に閲覧することができます。

Excel ファイルを XPS 形式に変換することにはいくつかの利点があります。例えば、Microsoft Excel や他の電子スプレッドシートにアクセスできないユーザーと Excel データを共有するために、XPS 形式を使用することができます。さらに、変換により、元の Excel ファイルのフォーマットを維持し、読みやすくすることができます。また、XPS ファイルはアクセシビリティに配慮されており、スクリーンリーダーや支援技術によって読み込むことができます。この記事では、Spire.XLS for C++ を使用して C++ で Excel を XPS に変換する方法について説明します。

Spire.XLS for C++ をインストールします

Spire.XLS for C++ をアプリケーションに組み込むには、2つの方法があります。一つは NuGet 経由でインストールする方法、もう一つは当社のウェブサイトからパッケージをダウンロードし、ライブラリをプログラムにコピーする方法です。NuGet 経由のインストールの方が便利で、より推奨されます。詳しくは、以下のリンクからご覧いただけます。

Spire.XLS for C++ を C++ アプリケーションに統合する方法

C++ で Excel をXPS に変換する

Excel ファイルを XPS 形式に変換することは、Spire.XLS for C++ を使用することで簡単に行えます。まず、Workbook->LoadFromFile(LPCWSTR_S fileName) メソッドを使って Excel ファイルを読み込みます。次に、Workbook->SaveToFile(LPCWSTR_S fileName, FileFormat::XPS) メソッドを呼び出して、XPS形式で保存します。詳細な手順は次のとおりです。

  • 入力ファイルと出力ファイルのパスを指定します。
  • Workbook クラスのインスタンスを初期化します。
  • Workbook->LoadFromFile() メソッドを使用して Excel ファイルを読み込みます。
  • Workbook->SaveToFile(LPCWSTR_S fileName, FileFormat::XPS) メソッドを使用して、指定したファイルパスで Excel を XPS ファイルに保存します。
  • C++
#include "Spire.Xls.o.h";

using namespace Spire::Xls;
using namespace std;

int main()
{
	//入力ファイルと出力ファイルのパスを指定する
	wstring inputFile = L"sample.xlsx";
	wstring outputFile =  L"ExcelToXPS.xps";

	//Workbookクラスのインスタンスを初期化する
	Workbook* workbook = new Workbook();

	//Excelファイルを読み込む
	workbook->LoadFromFile(inputFile.c_str());

	//ExcelをXPSファイルに保存する
	workbook->SaveToFile(outputFile.c_str(), Spire::Xls::FileFormat::XPS);
	workbook->Dispose();
	delete workbook;
}

C++:Excel を XPS に変換する方法

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

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

適切な背景を使用することで、PDF 文書内の異なるコンテンツ要素がより一致し、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.6.2</version>
    </dependency>
</dependencies>

Java で PDF ドキュメントに背景色を追加する

PDF の背景を設定するには、各ページを処理する必要があります。PDF 内のすべてのページをループし、PdfPageBase.setBackgroundColor() メソッドを使用して各ページの背景色を設定することができます。以下が詳細な手順です。

  • PdfDocument オブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッドを使用して PDF ドキュメントをロードします。
  • PDF 内のページをループし、PdfPageBase.setBackgroundColor() メソッドを使用して各ページに背景色を追加します。
  • PdfPageBase.setBackgroudOpacity() メソッドを使用して、背景の透明度を設定することもできます。
  • PdfDocument.saveToFile() メソッドを使用してドキュメントを保存します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;

import java.awt.*;

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

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

        //PDFファイルをロードする
        pdf.loadFromFile("sample.pdf");

        //PDFのページをループする
        for(int i = pdf.getPages().getCount()-1; i>=0; i--)
        {
            PdfPageBase page = pdf.getPages().get(i);

            //ページの背景色を設定する
            page.setBackgroundColor(Color.PINK);

            //背景の透明度を設定する
            page.setBackgroudOpacity(0.2f);
        }

        //PDFファイルを保存する
        pdf.saveToFile("BackgroundColor.pdf");
        pdf.dispose();
    }
}

Java:PDF の背景色または背景画像を設定する方法

Java で PDF ドキュメントに背景画像を追加する

Spire.PDF for Java は、PdfPageBase.setBackgroundImage() メソッドを提供し、PDF ページに背景画像を設定することができます。PDF 文書に背景画像を追加するための詳細な手順は以下の通りです。

  • PdfDocument オブジェクトを作成します。
  • PdfDocument.loadFromFile() メソッドを使用して PDF ドキュメントをロードします。
  • PDF 内のページをループし、PdfPageBase.setBackgroundImage() メソッドを使用して各ページに背景画像を追加します。
  • PdfPageBase.setBackgroudOpacity() メソッドを使用して、背景の透明度を設定することもできます。
  • PdfDocument.saveToFile() メソッドを使用してドキュメントを保存します。
  • Java
import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

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

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

        //PDFファイルをロードする
        pdf.loadFromFile("sample.pdf");

        //画像をロードする
        BufferedImage background = ImageIO.read(new File("background.jpg"));

        //PDFのページをループする
        for(int i = pdf.getPages().getCount()-1; i>=0; i--)
        {
            PdfPageBase page = pdf.getPages().get(i);

            //ロードされた画像をページの背景画像に設定する
            page.setBackgroundImage(background);

            //背景の透明度を設定する
            page.setBackgroudOpacity(0.4f);
        }

        //PDFファイルを保存する
        pdf.saveToFile("BackgroundImage.pdf);
        pdf.dispose();
    }
}

Java:PDF の背景色または背景画像を設定する方法

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

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