チュートリアル

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

Koohji

Koohji

文字書式は、個々の単語や語句の外観を変更するために使用されます。書式設定されたテキストは、読者の注意を文書の特定のセクションに向けさせ、重要な情報を強調することができます。Word ドキュメントで使用できる文字書式の形式は、かなり多くあります。この記事では、Spire.Doc for .NET を使用して、Word ドキュメント内のテキストにさまざまな種類の書式を適用する方法について説明します。

  • フォント
  • フォントのサイズ
  • フォントの色
  • テキストのハイライト
  • 太字
  • 斜体
  • 下線部
  • 取り消し線
  • 囲み線
  • 文字の網かけ
  • 傍点
  • 下付きと上付き

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

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

PM> Install-Package Spire.Doc

Word ドキュメント内の文字に書式を適用する

テキストに書式を適用するには、テキストを TextRange として取得し、CharacterFormat プロパティを通して TextRange 内の文字に書式を適用する必要があります。以下はその詳細な手順です。

  • Document のオブジェクトを作成します。
  • Document.AddSection() メソッドを使用して、ドキュメントにセクションを追加します。
  • Section.AddParagraph() メソッドを使用して、セクションに段落を追加します。
  • Paragraph.AppendText() メソッドを使用して、段落にテキストを追加し、TextRange のオブジェクトを返します。
  • TextRange.CharacterFormat プロパティで、テキスト範囲内の文字にフォント名、フォントのサイズ、囲み線、ハイライトなどの書式を設定します。
  • Document.SaveToFile() メソッドを使用してドキュメントを保存します。
  • C#
  • VB.NET
using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System.Drawing;

namespace ApplyFormattingToCharacters
{
    class Program
    {
        static void Main(string[] args)
        {
            //Documentのオブジェクトを作成する
            Document document = new Document();

            //セクションを追加する
            Section sec = document.AddSection();

            //段落を追加し、スタイルを設定します
            Paragraph paragraph = sec.AddParagraph();
            ParagraphStyle defaultFont = new ParagraphStyle(document);
            defaultFont.CharacterFormat.FontName = "Yu Gothic";
            document.Styles.Add(defaultFont);
            paragraph.ApplyStyle(defaultFont.Name);
            paragraph.AppendText("\n\nここでは、さまざまな文字スタイルを持つ段落を紹介します。\nこれは");

            //段落にテキストを追加し、TextRangeのオブジェクトを返す
            TextRange tr = paragraph.AppendText("取り消し線付きテキスト");

            //TextRangeのオブジェクトで取り消し線付きの文字書式を設定する
            tr.CharacterFormat.IsStrikeout = true;

            //テキスト背景に網かけを設定する
            paragraph.AppendText("。\nこれは");
            tr = paragraph.AppendText("網かけ付きテキストです");
            tr.CharacterFormat.IsShadow = true;

            //フォントサイズを設定する 
            paragraph.AppendText("。\nこれは");
            tr = paragraph.AppendText("大きいフォントのテキストです");
            tr.CharacterFormat.FontSize = 20;

            //フォント名を設定する 
            paragraph.AppendText("。\nこれは");
            tr = paragraph.AppendText("明朝体の文字です");
            tr.CharacterFormat.FontName = "Yu Mincho";

            //フォントの色を設定する
            paragraph.AppendText("。\nこれは");
            tr = paragraph.AppendText("赤色で表示されるテキストです");
            tr.CharacterFormat.TextColor = Color.Red;

            //テキストに太字や斜体の書式を適用する
            paragraph.AppendText("。\nこれは");
            tr = paragraph.AppendText("太字や斜体のテキストです");
            tr.CharacterFormat.Bold = true;
            tr.CharacterFormat.Italic = true;

            //テキストに下線書式を適用する
            paragraph.AppendText("。\nこれは");
            tr = paragraph.AppendText("下線付きのテキストです");
            tr.CharacterFormat.UnderlineStyle = UnderlineStyle.Single;

            //テキストに背景色を適用する
            paragraph.AppendText("。\nこれは");
            tr = paragraph.AppendText("ハイライトされているテキストです");
            tr.CharacterFormat.HighlightColor = Color.Green;

            //テキストに囲み線を適用する
            paragraph.AppendText("。\nこれは");
            tr = paragraph.AppendText("囲み線付きのテキストです");
            tr.CharacterFormat.Border.BorderType = Spire.Doc.Documents.BorderStyle.Single;
            tr.CharacterFormat.Border.Color = Color.Black;

            //テキストに強調マークを付ける
            paragraph.AppendText("。\nこれは");
            tr = paragraph.AppendText("傍点付きのテキストです");
            tr.CharacterFormat.EmphasisMark = Emphasis.DotBelow;

            //テキストに上付き文字を適用する
            paragraph.AppendText("。\nこれは数学の公式です: a");
            tr = paragraph.AppendText("2");
            tr.CharacterFormat.SubSuperScript = SubSuperScript.SuperScript;
            paragraph.AppendText(" + b");
            tr = paragraph.AppendText("2");
            tr.CharacterFormat.SubSuperScript = SubSuperScript.SuperScript;
            paragraph.AppendText(" = c");
            tr = paragraph.AppendText("2");
            tr.CharacterFormat.SubSuperScript = SubSuperScript.SuperScript;
            paragraph.AppendText(".");

            //ドキュメントを保存する
            document.SaveToFile("文字書式の設定.docx", FileFormat.Docx);
        }
    }
}
Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields
Imports System.Drawing

Namespace ApplyFormattingToCharacters
    Class Program
        Shared Sub Main(ByVal args() As String)
            'Documentのオブジェクトを作成する
            Dim document As Document = New Document()

            'セクションを追加する
            Dim sec As Section = document.AddSection()

            '段落を追加し、スタイルを設定します
            Dim paragraph As Paragraph = sec.AddParagraph()
            Dim defaultFont As ParagraphStyle = New ParagraphStyle(document)
            defaultFont.CharacterFormat.FontName = "Yu Gothic"
            document.Styles.Add(defaultFont)
            paragraph.ApplyStyle(defaultFont.Name)
            paragraph.AppendText("\n\nここでは、さまざまな文字スタイルを持つ段落を紹介します。\nこれは")

            '段落にテキストを追加し、TextRangeのオブジェクトを返す
            Dim tr As TextRange = paragraph.AppendText("取り消し線付きテキスト")

            'TextRangeのオブジェクトで取り消し線付きの文字書式を設定する
            tr.CharacterFormat.IsStrikeout = True

            'テキスト背景に網かけを設定する
            paragraph.AppendText("。\nこれは")
            tr = paragraph.AppendText("網かけ付きテキストです")
            tr.CharacterFormat.IsShadow = True

            'フォントサイズを設定する 
            paragraph.AppendText("。\nこれは")
            tr = paragraph.AppendText("大きいフォントのテキストです")
            tr.CharacterFormat.FontSize = 20

            'フォント名を設定する 
            paragraph.AppendText("。\nこれは")
            tr = paragraph.AppendText("明朝体の文字です")
            tr.CharacterFormat.FontName = "Yu Mincho"

            'フォントの色を設定する
            paragraph.AppendText("。\nこれは")
            tr = paragraph.AppendText("赤色で表示されるテキストです")
            tr.CharacterFormat.TextColor = Color.Red

            'テキストに太字や斜体の書式を適用する
            paragraph.AppendText("。\nこれは")
            tr = paragraph.AppendText("太字や斜体のテキストです")
            tr.CharacterFormat.Bold = True
            tr.CharacterFormat.Italic = True

            'テキストに下線書式を適用する
            paragraph.AppendText("。\nこれは")
            tr = paragraph.AppendText("下線付きのテキストです")
            tr.CharacterFormat.UnderlineStyle = UnderlineStyle.Single

            'テキストに背景色を適用する
            paragraph.AppendText("。\nこれは")
            tr = paragraph.AppendText("ハイライトされているテキストです")
            tr.CharacterFormat.HighlightColor = Color.Green

            'テキストに囲み線を適用する
            paragraph.AppendText("。\nこれは")
            tr = paragraph.AppendText("囲み線付きのテキストです")
            tr.CharacterFormat.Border.BorderType = Spire.Doc.Documents.BorderStyle.Single
            tr.CharacterFormat.Border.Color = Color.Black

            'テキストに強調マークを付ける
            paragraph.AppendText("。\nこれは")
            tr = paragraph.AppendText("傍点付きのテキストです")
            tr.CharacterFormat.EmphasisMark = Emphasis.DotBelow

            'テキストに上付き文字を適用する
            paragraph.AppendText("。\nこれは数学の公式です: a")
            tr = paragraph.AppendText("2")
            tr.CharacterFormat.SubSuperScript = SubSuperScript.SuperScript
            paragraph.AppendText(" + b")
            tr = paragraph.AppendText("2")
            tr.CharacterFormat.SubSuperScript = SubSuperScript.SuperScript
            paragraph.AppendText(" = c")
            tr = paragraph.AppendText("2")
            tr.CharacterFormat.SubSuperScript = SubSuperScript.SuperScript
            paragraph.AppendText(".")

            'ドキュメントを保存する
            document.SaveToFile("文字書式の設定.docx", FileFormat.Docx)
        End Sub
    End Class
End Namespace

C#/VB.NET:Word ドキュメント内のテキストに書式を適用する方法

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

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

Spire.PDF for Java 9.3.6のリリースを発表できることをうれしく思います。今回のアップデートはPDFの印刷スケーリング機能をサポートしました。同時に、PDF印刷時のメモリ消費を最適化しました。また、このリリースでは、表の内容を抽出する際にアプリケーションが「java.lang.NullPointerException」をスローする問題など、既知の問題も修正されました。詳細は以下の内容を読んでください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
New feature SPIREPDF-5796 PDF印刷時のメモリ消費を最適化しました。
New feature SPIREPDF-5833 PDFの印刷スケーリング機能をサポートしました。
pdfDocument.getPrintSettings().selectSinglePageLayout
(PdfSinglePageScalingMode.Custom_Sacle, true, customScaling);
Bug SPIREPDF-5536 表の内容を抽出する際にアプリケーションが「java.lang.NullPointerException」をスローする問題が修正されました。
Bug SPIREPDF-5558 CSVに表を抽出する時、一部の文字間のスペースが失われる問題を修正しました。
Bug SPIREPDF-5750 文書をロードまたは再保存した後、印章が消える問題を修正しました。
Bug SPIREPDF-5762 暗号化されたPDF文書を保存するときに、アプリケーションが「NullPointerException」をスローする問題を修正しました。
Bug SPIREPDF-5803 PDFフォームを平坦化した後、チェックボックスの位置が変わる問題を修正しました。
Bug SPIREPDF-5822 Squareタイプの注釈の透明度を設定できない問題を修正しました。
Bug SPIREPDF-5827 ライセンスを適用した後にPDFをPDFA1Bに変換する際、アプリケーションが「OutOfMemoryError」をスローする問題を修正しました。
Bug SPIREPDF-5834 イタリア語環境下でPDFをPDFA3Aに変換するときに、アプリケーションが「Invalid date string」をスローする問題を修正しました。
ここでSpire.PDF for Java 9.3.6をダウンロードする

折れ線グラフは、特定の期間におけるデータの変化または傾向を表す基本的なグラフのタイプです。このグラフはデータ点を折れ線で接続します。折れ線グラフは1つのデータセットの単線を含むことも、2つ以上のデータセットの複数線を含むこともできます。この記事では、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.3.1</version>
    </dependency>
</dependencies>

Excel で折れ線グラフを作成する

Spire.XLS for Java では、Worksheet.getCharts().add(ExcelChartType.Line) メソッドはシートに折れ線グラフを追加することをサポートしています。次に、必要なデータ範囲とグラフの要素を設定します。以下に詳細な操作手順を示します。

  • Workbook クラスのインスタンスを作成します。
  • Workbook.getWorksheets().get(sheetIndex) メソッドを使用して、インデックス(ゼロから始まる)で最初のワークシートを取得します。
  • シートにデータを追加します。
  • Worksheet.getCharts().add(ExcelChartType.Line) メソッドを使用して、シートに折れ線グラフを追加します。
  • Chart.setDataRange() メソッドを使用して、グラフのデータ範囲を設定します。
  • グラフの位置、タイトル、カテゴリ軸のタイトル、数値軸のタイトルを設定します。
  • グラフのデータ系列をループします。
  • ChartSerie.getDataPoints().getDefaultDataPoint().getDataLabels().hasValue(true) メソッドを使用して、各データ系列のデータポイントのデータ ラベルを表示します。
  • Chart.getLegend().setPosition() メソッドを使用して、グラフの凡例の位置を設定します。
  • Workbook.saveToFile() メソッドを使用して結果ファイルを保存します。
  • Java
import com.spire.xls.*;
import com.spire.xls.charts.ChartSerie;

import java.awt.*;

public class CreateLineChart {
    public static void main(String []args){
        //Workbookのインスタンスを作成する
        Workbook workbook = new Workbook();

        //最初のシートを取得する
        Worksheet sheet = workbook.getWorksheets().get(0);
        //シート名を設定する
        sheet.setName("Line Chart");;
        //グリッド線を隠す
        sheet.setGridLinesVisible(false);

        //シートにデータを追加する
        sheet.getRange().get("A1").setValue("国");
        sheet.getRange().get("A2").setValue("キューバ. ");
        sheet.getRange().get("A3").setValue("メキシコ. ");
        sheet.getRange().get("A4").setValue("フランス. ");
        sheet.getRange().get("A5").setValue("ドイツ");

        sheet.getRange().get("B1").setValue("6月");
        sheet.getRange().get("B2").setNumberValue(3300);
        sheet.getRange().get("B3").setNumberValue(2300);
        sheet.getRange().get("B4").setNumberValue(4500);
        sheet.getRange().get("B5").setNumberValue(6700);

        sheet.getRange().get("C1").setValue("7月");
        sheet.getRange().get("C2").setNumberValue(7500);
        sheet.getRange().get("C3").setNumberValue(2900);
        sheet.getRange().get("C4").setNumberValue(2300);
        sheet.getRange().get("C5").setNumberValue(4200);

        sheet.getRange().get("D1").setValue("8月");
        sheet.getRange().get("D2").setNumberValue(7700);
        sheet.getRange().get("D3").setNumberValue(6900);
        sheet.getRange().get("D4").setNumberValue(8400);
        sheet.getRange().get("D5").setNumberValue(4200);

        sheet.getRange().get("E1").setValue("9月");
        sheet.getRange().get("E2").setNumberValue(8000);
        sheet.getRange().get("E3").setNumberValue(7200);
        sheet.getRange().get("E4").setNumberValue(8300);
        sheet.getRange().get("E5").setNumberValue(5600);

        //指定したセルのフォントと塗りつぶし色を設定する
        sheet.getRange().get("A1:E1").getStyle().getFont().isBold(true);
        sheet.getRange().get("A2:E2").getStyle().setKnownColor(ExcelColors.LightYellow);;
        sheet.getRange().get("A3:E3").getStyle().setKnownColor(ExcelColors.LightGreen1);
        sheet.getRange().get("A4:E4").getStyle().setKnownColor(ExcelColors.LightOrange);
        sheet.getRange().get("A5:E5").getStyle().setKnownColor(ExcelColors.LightTurquoise);

        //セルの枠線を設定する
        sheet.getRange().get("A1:E5").getStyle().getBorders().getByBordersLineType(BordersLineType.EdgeTop).setColor(new Color(0, 0, 128));
        sheet.getRange().get("A1:E5").getStyle().getBorders().getByBordersLineType(BordersLineType.EdgeTop).setLineStyle(LineStyleType.Thin);
        sheet.getRange().get("A1:E5").getStyle().getBorders().getByBordersLineType(BordersLineType.EdgeBottom).setColor(new Color(0, 0, 128));
        sheet.getRange().get("A1:E5").getStyle().getBorders().getByBordersLineType(BordersLineType.EdgeBottom).setLineStyle(LineStyleType.Thin);
        sheet.getRange().get("A1:E5").getStyle().getBorders().getByBordersLineType(BordersLineType.EdgeLeft).setColor(new Color(0, 0, 128));
        sheet.getRange().get("A1:E5").getStyle().getBorders().getByBordersLineType(BordersLineType.EdgeLeft).setLineStyle(LineStyleType.Thin);
        sheet.getRange().get("A1:E5").getStyle().getBorders().getByBordersLineType(BordersLineType.EdgeRight).setColor(new Color(0, 0, 128));
        sheet.getRange().get("A1:E5").getStyle().getBorders().getByBordersLineType(BordersLineType.EdgeRight).setLineStyle(LineStyleType.Thin);

        //数値のフォーマットを設定する
        sheet.getRange().get("B2:D5").getStyle().setNumberFormat("\"$\"#,##0");

        //シートへの折れ線グラフを追加する
        Chart chart = sheet.getCharts().add(ExcelChartType.Line);

        //グラフのデータ範囲を設定する
        chart.setDataRange(sheet.getRange().get("A1:E5"));

        //グラフの位置を設定する
        chart.setLeftColumn(1);
        chart.setTopRow(6);
        chart.setRightColumn(11);
        chart.setBottomRow(29);

        //グラフのタイトルを設定してフォーマットする
        chart.setChartTitle("販売レポート");
        chart.getChartTitleArea().isBold(true);
        chart.getChartTitleArea().setSize(12);

        //カテゴリ軸のタイトルを設定してフォーマットする
        chart.getPrimaryCategoryAxis().setTitle("月");
        chart.getPrimaryCategoryAxis().getFont().isBold(true);
        chart.getPrimaryCategoryAxis().getTitleArea().isBold(true);

        //値軸のタイトルを設定してフォーマットする
        chart.getPrimaryValueAxis().setTitle("売上高");
        chart.getPrimaryValueAxis().hasMajorGridLines(false);
        chart.getPrimaryValueAxis().getTitleArea().setTextRotationAngle(-90);
        chart.getPrimaryValueAxis().setMinValue(1000);
        chart.getPrimaryValueAxis().getTitleArea().isBold(true);

        //グラフのデータ系列をループする
       for(ChartSerie cs : (Iterable) chart.getSeries())
        {
            cs.getFormat().getOptions().isVaryColor(true);
            //データポイントのデータラベルを表示する
            cs.getDataPoints().getDefaultDataPoint().getDataLabels().hasValue(true);
        }

        //グラフの凡例の位置を設定する
        chart.getLegend().setPosition(LegendPositionType.Top);

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

Java:Excel で折れ線グラフを作成する方法

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

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

Word ドキュメントの改ページは、ページレイアウトの重要な機能で、好きな場所で新しいページを開始するのに役立ちます。改ページを挿入すると、前のページのすべての書式が新しいページに適用され、ドキュメント全体がすっきりと整理されます。この記事では、Spire.Doc for C++ を使用して、プログラムで Word ドキュメントに改ページを追加または削除する方法について説明します。

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

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

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

Word ドキュメントで特定の段落の後に改ページを挿入する

Spire.Doc for C++ では、段落の後に改ページを挿入する Paragraph->AppendBreak(BreakType::PageBreak) メソッドを提供しています。改ページが挿入されると、改ページを示す記号が表示されます。以下は、Word ドキュメントで特定の段落の後に改ページを挿入するための詳細な手順である。

  • Document のインスタンスを作成します。
  • Document->LoadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • Document->GetSections()->GetItem(sectionIndex) メソッドを使用して、指定されたセクションを取得します。
  • Section->GetParagraphs()->GetItem(paragraphIndex) メソッドを使用して、指定された段落を取得します。
  • Paragraph->AppendBreak(BreakType::PageBreak) メソッドを使用して、段落の末尾に改ページを追加します。
  • Document->SaveToFile() メソッドを使用してドキュメントを保存します。
  • C++
#include "Spire.Doc.o.h"

using namespace Spire::Doc;

int main() {
	//入力ファイル、出力ファイルのパスを指定する
	std::wstring inputFile = L"C:/狼はどこに行ったの.docx";
	std::wstring outputFile = L"Output/段落の後に改ページを挿入.docx";

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

	//Wordドキュメントを読み込む
	document->LoadFromFile(inputFile.c_str());

	//最初のセクションを取得する
	Section* section = document->GetSections()->GetItem(0);

	//セクションの3つ目の段落を取得する
	Paragraph* paragraph = section->GetParagraphs()->GetItem(2);

	//段落の後に改ページを挿入する
	paragraph->AppendBreak(BreakType::PageBreak);

	//ドキュメントを保存する
	document->SaveToFile(outputFile.c_str(), FileFormat::Docx2013);
	document->Close();
	delete document;
}

C++:Word ドキュメントに改ページを挿入、削除する方法

Word ドキュメントで特定のテキストの後に改ページを挿入する

Spire.Doc for C++ では、段落の後に改ページを挿入する以外に、指定したテキストを検索して、そのテキストの後に改ページを挿入することも可能です。以下、詳しい手順を説明します。

  • Document のインスタンスを作成します。
  • Document->LoadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • Document->FindString() メソッドを使用して、指定したテキストを検索します。
  • TextSelection->GetAsOneRange() メソッドを使用して、指定されたテキストのテキスト範囲を取得します。
  • TextRange->GetOwnerParagraph() メソッドを使用して、テキスト範囲がある段落を取得します。
  • Paragraph->GetChildObjects()->IndexOf() メソッドを使用して、段落内のテキスト範囲の位置インデックスを取得する。
  • Break インスタンスを初期化し、改ページを作成します。
  • Paragraph->GetChildObjects()->Insert() メソッドを使用して、指定されたテキストの後に改ページを挿入します。
  • Document->SaveToFile() メソッドを使用して、ドキュメントを保存します。
  • C++
#include "Spire.Doc.o.h"

using namespace Spire::Doc;

int main() {
	//入力ファイル、出力ファイルのパスを指定する
	std::wstring inputFile = L"C:/狼はどこに行ったの.docx";
	std::wstring outputFile = L"Output/テキストの後に改ページを挿入.docx";

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

	//Word ドキュメントを読み込む
	document->LoadFromFile(inputFile.c_str());

	//指定したテキストを検索する
	TextSelection* selection = document->FindString(L"進化現象", true, true);

	//指定したテキストのテキスト範囲を取得する
	TextRange* range = selection->GetAsOneRange();

	//テキスト範囲がある段落を取得する
	Paragraph* paragraph = range->GetOwnerParagraph();

	//段落内のテキスト範囲の位置インデックスを取得する
	int index = paragraph->GetChildObjects()->IndexOf(range);

	//改ページを作成する
	Break* pageBreak = new Break(document, BreakType::PageBreak);

	//指定したテキストの後に改ページを挿入する
	paragraph->GetChildObjects()->Insert(index + 1, pageBreak);

	//ドキュメントを保存する
	document->SaveToFile(outputFile.c_str(), FileFormat::Docx2013);
	document->Close();
	delete document;
}

C++:Word ドキュメントに改ページを挿入、削除する方法

Word ドキュメントから改ページを削除する

誤って追加された改ページがあると、文書全体の構造が乱れてしまうので、それを削除することはかなり必要です。以下は、Word 文書で改ページを削除する手順です。

  • Document のインスタンスを作成します。
  • Document->LoadFromFile() メソッドを使用して Word ドキュメントを読み込みます。
  • 最初のセクションの各段落をループし、次に段落の各子オブジェクトをループします。
  • 子オブジェクトのタイプが改ページであるかどうかを判断します。もしそうなら、Paragraph->GetChildObjects()->Remove() メソッドを使用して、段落から改ページを削除します。
  • Document->SaveToFile() メソッドを使用して、ドキュメントを保存します。
  • C++
#include "Spire.Doc.o.h"

using namespace Spire::Doc;

int main() {
	//入力ファイル、出力ファイルのパスを指定する
	std::wstring inputFile = L"Output/段落の後に改ページを挿入.docx";
	std::wstring outputFile = L"Output/改ページの削除.docx";

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

	//Word ドキュメントを読み込む
	document->LoadFromFile(inputFile.c_str());

	//1つ目のセクションの各段落をループする
	for (int j = 0; j < document->GetSections()->GetItem(0)->GetParagraphs()->GetCount(); j++)
	{
		Paragraph* p = document->GetSections()->GetItem(0)->GetParagraphs()->GetItem(j);

		//段落の各子オブジェクトをループする
		for (int i = 0; i < p->GetChildObjects()->GetCount(); i++)
		{
			DocumentObject* obj = p->GetChildObjects()->GetItem(i);

			//子オブジェクトの種類が改ページかどうかを判断する
			if (obj->GetDocumentObjectType() == DocumentObjectType::Break)
			{
				Break* b = dynamic_cast<Break*>(obj);

				//段落から改ページを削除する
				p->GetChildObjects()->Remove(b);
			}
		}
	}

	//ドキュメントを保存する
	document->SaveToFile(outputFile.c_str(), FileFormat::Docx2013);
	document->Close();
	delete document;
}

C++:Word ドキュメントに改ページを挿入、削除する方法

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

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

Spire.Office for Java 8.3.5のリリースを発表できることをうれしく思います。このリリースでは、Spire.PDF for Javaはドキュメントの圧縮機能を最適化し、PDFからExcelへの変換機能を強化しました。Spire.Doc for Javaは、WordからPDFへの変換機能を強化しました。Spire.XLS for JavaはExcelからPDFへの変換機能を強化しました。さらに、多くの既知のバグが正常に修正されました。詳細は以下の内容を読んでください。

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

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

Spire.PDF for Java

カテゴリー ID 説明
New feature SPIREPDF-5706 ドキュメントの圧縮機能が最適化されました。
PdfCompressor compressor = new PdfCompressor(inputFile);
compressor.getOptions().getImageCompressionOptions().setResizeImages(true);
compressor.getOptions().getImageCompressionOptions().setImageQuality(ImageQuality.Low);
compressor.compressToFile(outputFile);
Bug SPIREPDF-5655 PDFをExcelに変換した後にキャラクターの表示が正しくない問題が修正されました。
Bug SPIREPDF-5767 注記の削除に失敗した問題が修正されました。
Bug SPIREPDF-5776 正方形と円形の注釈の削除に失敗した問題が修正されました。
Bug SPIREPDF-5778 セルを改行しないように設定したときにセルの内容が失われていた問題が修正されました。

Spire.Doc for Java

カテゴリー ID 説明
Bug SPIREDOC-8858 WordをPDFに変換すると、WPSツールでテキストを見るときに改行が一致しない問題が修正されました。
Bug SPIREDOC-8950 WordをPDFに変換した後に、ページングが一致しない問題が修正されました。
Bug SPIREDOC-9011 ブックマークを置換する際にアプリケーションが「java.lang.NullPointerException」をスローした問題が修正されました。
Bug SPIREDOC-9016 WordをPDFに変換した後に、WPSツールで中国語記号の表示が正しくない問題が修正されました。
Bug SPIREDOC-9028 Wordドキュメントをロードする際にアプリケーションが「java.lang.ClassCastException」をスローした問題が修正されました。
Bug SPIREDOC-9055 ProtectionType.Allow_Only_Revisionsの設定後に改訂されたコンテンツに符号がない問題が修正されました。

Spire.XLS for Java

カテゴリー ID 説明
Bug SPIREXLS-4423 数式を複数回設定した後に参照されたデータパスが正しくない問題が修正されました。
Bug SPIREXLS-4426 セル範囲でDataValidationの設定が有効にならない問題が修正されました。
Bug SPIREXLS-4429 Excelドキュメントのロード時にアプリケーションが「Index is less than 0 or more」をスローする問題が修正されました。
Bug SPIREXLS-4501 Excelから変換されるPDFドキュメントのサイズを最適化しました。
Workbook workbook = new Workbook();
workbook.loadFromFile("1.xlsx");
workbook.getConverterSetting().setJPEGQuality(40);
workbook.saveToFile("1.pdf", FileFormat.PDF).
Bug SPIREXLS-4453 幅の自動調整の効果とMicrosoft Excelの効果が一致しない問題が修正されました。
Bug SPIREXLS-4456 Filter関数にネストされたConcat関数の計算結果が正しくない問題が修正されました。
Bug SPIREXLS-4461 null値を含むデータテーブルをSheetにインポートする際に、アプリケーションが「java.lang.NumberFormatException」をスローした問題が修正されました。
Bug SPIREXLS-4462 フィルタを追加した後にマージされた行が失われた問題が修正されました。
Bug SPIREXLS-4469
SPIREXLS-4483
Filter関数の計算結果が正しくない問題が修正されました。
Bug SPIREXLS-4477 複数のsheetを同時に並べ替えた場合に最初のsheetだけが有効になる問題が修正されました。
Bug SPIREXLS-4478 ExcelをPDFに変換した後に図形が変更した問題が修正されました。
Bug SPIREXLS-4479 数値フォーマットを設定して列幅を自動調整するように設定した場合、Excelを開いた後にセルの数値が正しく表示されない問題が修正されました。
Bug SPIREXLS-4487 Excelドキュメントをロードする際にアプリケーションが「java.lang.NullPointerException」をスローした問題が修正されました。
Bug SPIREXLS-4488 フィルタ条件をクリアする効果が正しくない問題が修正されました。

Spire.Office 8.3.2のリリースを発表できることを嬉しく思います。このバージョンでは、Spire.PDFは、PDFドキュメントにフォントを埋め込む機能と、「ドメインの表示/非表示」アクションの作成をサポートします。Spire.XLSはISOWEEKNUM式、CEILING.PRECISE式、ENCODEURL式をサポートしました。Spire.Spreadsheetはズームの機能をサポートしました。Spire.EmailはOAuth 2認証をサポートしました。

このバージョンでは、Spire.Doc,Spire.PDF,Spire.XLS,Spire.Email,Spire.DocViewer, Spire.PDFViewer,Spire.Presentation,Spire.Spreadsheet, Spire.OfficeViewer, Spire.Barcode, Spire.DataExportの最新バージョンが含まれています。

DLL Versions:
  • Spire.Doc.dll v11.3.2
  • Spire.Pdf.dll v9.3.4
  • Spire.XLS.dll v13.3.2
  • Spire.Presentation.dll v8.2.0
  • Spire.Email.dll v6.3.1
  • Spire.DocViewer.Forms.dll v8.3.0
  • Spire.PdfViewer.Forms.dll v7.10.0
  • Spire.PdfViewer.Asp.dll v7.10.0
  • Spire.Spreadsheet.dll v7.2.0
  • Spire.OfficeViewer.Forms.dll v8.3.2
  • Spire.Barcode.dll v7.2.1
  • Spire.DataExport.dll v4.8.0
  • Spire.DataExport.ResourceMgr.dll v2.1.0
ここで Spire.Office 8.3.2をダウンロードする:

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

Spire.PDF

カテゴリー ID 説明
New feature SPIREPDF-3933 PDFドキュメントにフォントを埋め込む機能がサポートされました。
PdEmbeddedFontConverter converter = new PdEmbeddedFontConverter ("InputFile");
convert.ToEmbeddedFontPdf("resultFile");
New feature SPIREPDF-5396 「ドメインの表示/非表示」アクションを作成する機能がサポートされました。
PdfDocument pdf = new PdfDocument(inputFile);
pdf.LoadFromFile(inputFile);
for (int c = 0; c < pdf.Pages.Count; c++)
{
    PdfFormWidget formWidget = pdf.Form as PdfFormWidget;
    for (int i = 0; i < formWidget.FieldsWidget.List.Count; i++)
    {
        PdfField field = formWidget.FieldsWidget.List[i] as PdfField;
        if (field is PdfButtonWidgetFieldWidget)
        {
            PdfButtonWidgetFieldWidget buttonWidget = field as PdfButtonWidgetFieldWidget;
            PdfHideAction hideAction = new PdfHideAction(buttonWidget.Name, true);
            buttonWidget.MouseDown = hideAction;
        }
    }
}
pdf.SaveToFile(outputFile);
pdf.Dispose();
New feature SPIREPDF-5769 ドキュメントの圧縮機能が最適化されました。
PdfCompressor compressor = new PdfCompressor("1.pdf");
compressor.Options.TextCompressionOptions.UnembedFonts = true;
compressor.Options.ImageCompressionOptions.CompressImage = true;
compressor.Options.ImageCompressionOptions.ResizeImages = true;
compressor.Options.ImageCompressionOptions.ImageQuality = ImageQuality.Low;
compressor.CompressToFile("1_out.pdf");
Bug SPIREPDF-5436 SPIREPDF-5743 PDFをWordに変換した後に、内容が正しくない問題が修正されました。
Bug SPIREPDF-5519 OFDをPDFに変換した後に、文字化けとボックスの問題が修正されました。
Bug SPIREPDF-5702 正しいパスワードを入力した後、Adobe Readerを使用してAndroidデバイスで暗号化されたドキュメントを開くことができなかった問題が修正されました。
Bug SPIREPDF-5730 PDFをマージした後にラジオボタンがデフォルトオプション機能を失っていた問題が修正されました。
Bug SPIREPDF-5738 ハイライトされたテキストが画像に変換されてカバーされていた問題が修正されました。
Bug SPIREPDF-5749 PDFを画像に変換した後に内容が正しくない問題が修正されました。
Bug SPIREPDF-5761 XPSをPDFに変換した後に内容が正しくない問題が修正されました。
Bug SPIREPDF-5766 PDFを画像に変換した後に背景色の変化の問題が修正されました。
Bug SPIREPDF-5788 PDFページをテンプレートとして新しいドキュメントに描画した後、赤章の色が青色に変化する問題が修正されました。
Bug SPIREPDF-5790 PDFをマージする際にアプリケーションが「System.ArgumentOutOfRangeException」をスローする問題が修正されました。
Bug SPIREPDF-5797 PDFをXPSに変換した後に線が失われていた問題が修正されました。
Bug SPIREPDF-5798 PDFをWordに変換した後に内容が失われていた問題が修正されました。
Bug SPIREPDF-5805 PDFをSVGに変換する際にアプリケーションが「System.ArgumentException:'Parameter is not valid'」をスローする問題が修正されました。
Bug SPIREPDF-5809 OFDをPDFに変換する際にアプリケーションが「System.IO.FileNotFoundException」をスローする問題が修正されました。

Spire.XLS

カテゴリー ID 説明
New feature SPIREXLS-4396 ISOWEEKNUM式がサポートされました。
Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Formula = "ISOWEEKNUM(DATE(2012,1,1))";
workbook.CalculateAllValue();
workbook.SaveToFile("result.xlsx");
New feature SPIREXLS-4404 CEILING.PRECISE式がサポートされました。
Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Formula = "CEILING.PRECISE(-4.6,3)";
workbook.CalculateAllValue();
workbook.SaveToFile("result.xlsx");
New feature SPIREXLS-4455 ENCODEURL式がサポートされました。
Workbook workbook = new Workbook();
workbook.Worksheets[0].Range["A1"].Formula = "ENCODEURL(\"https://www.e-iceblue.com\")";
workbook.CalculateAllValue();
workbook.SaveToFile("result.xlsx");
New feature SPIREXLS-4460 シート内のフォントを別のフォントに置き換えることがサポートされました。
sheet.ReplaceAll(oldValue, oldStyle, newValue, newStyle)
Bug SPIREXLS-686
SPIREXLS-4431
Excelを画像に変換した後に内容が正しくない問題が修正されました。
Bug SPIREXLS-3804 Excelを画像に変換した後に背景色が失われていた問題が修正されました。
Bug SPIREXLS-4259 DisplayedText()を使用して非表示セル領域からテキストを取得する際にNULL値を取得する問題が取得される問題を修正しました。
Bug SPIREXLS-4406 保存したファイルをMS Excelで開いた後にセル値が更新されなかった問題が修正されました。
Bug SPIREXLS-4414 追加されたTextBoxの位置が正しくない問題が修正されました。
Bug SPIREXLS-4428 DeleteOption.MoveLeftパラメータを使用してセル範囲を削除した結果が正しくない問題が修正されました。
Bug SPIREXLS-4446 Excelの画像を置き換えるためにAzureにアプリケーションを配備したときに、アプリケーションが「Parameter is not valid」をスローした問題が修正されました。
Bug SPIREXLS-4466 行を挿入した後の内容フォーマットが正しくない問題が修正されました。
Bug SPIREXLS-4468 .txtファイルをExcelに変換した後のセル値に余分なスペースがあった問題が修正されました。
Bug SPIREXLS-4476 ExcelをPDFに変換した後に内容が正しくない問題が修正されました。
Bug SPIREXLS-4484 ExcelをHTMLに変換した後にリンクが無効になっていた問題が修正されました。
Bug SPIREXLS-4504 LastColumnとLastRowの両方を設定する際に、有効な設定が1つしかない問題が修正されました。

Spire.Doc

カテゴリー ID 説明
Bug SPIREDOC-5109
SPIREDOC-5440
WordをPDFに変換した後の下線の書式が正しくない問題が修正されました。
Bug SPIREDOC-8575 ディレクトリドメインの更新に失敗した問題が修正されました。
Bug SPIREDOC-8904 フォームフィールドにキャリッジリターン付きの値を設定する際に、アプリケーションが「System.NullReferenceException」をスローした問題が修正されました。
Bug SPIREDOC-8971 WordをPDFに変換すると内容が反転する問題を修正しました。
Bug SPIREDOC-9087 Wordドキュメントを保存する際にアプリケーションが「System.NullReferenceException」をスローした問題が修正されました。

Spire.Email

カテゴリー ID 説明
New feature SPIREEMAIL-67 OAuth 2認証をサポートしました。
Bug SPIREEMAIL-51 QQメールへの接続が失敗する問題を修正しました。
Bug SPIREEMAIL-60 163メールの受信トレイを読み込むとアプリケーションが「004 NO SELECT State error」をスローする問題が修正されました。
Bug SPIREEMAIL-62 メールを送信する際にアプリケーションが「Unable to read data from the transport connection」をスローする問題が修正されました

Spire.DocViewer

カテゴリー ID 説明
Bug SPIREDOCVIEWER-98 画像の一部が表示できない問題が修正されました。
Bug SPIREDOCVIEWER-99 中国語テキストの表示に失敗した問題も修正されました。

Spire.Spreadsheet

カテゴリー ID 説明
New feature - ズームの機能がサポートされています。

PDF で作成される文書がますます多様化する中、機密情報を保護する必要性に迫られることがあります。機密情報を安全に保つために、他の多くの PDF 保護オプションが利用可能ですが、最も一般的な方法は、PDF 文書にカスタムの電子透かしを追加することです。この記事では、Spire.PDF for C++ を使用して、C++ で PDF に単一またはタイル状のテキスト透かしを追加する方法について説明します。

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

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

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

PDF ドキュメントに単一のテキスト透かしを追加する

Spire.PDF for C++ は、PDF ファイルに透かしを挿入するためのインターフェースやクラスを提供しません。しかし、透かし効果を模倣するために、各ページに「機密」、「コピー禁止」、「下書き」などのテキストを描画することは可能です。以下は、PDF文書に1行のテキスト透かしを追加する手順です。

  • PdfDocument のオブジェクトを作成します。
  • PdfDocument->LoadFromFile() メソッドを使用して PDF ドキュメントを読み込みます。
  • PdfDocument->GetPages()->GetItem() メソッドを使用して、ドキュメントから特定のページを取得します。
  • PdfPageBase->GetCanvas()->TraslateTransform() メソッドを使用して、座標系を指定された座標に変換します。
  • PdfPageBase->GetCanvas()->RotateTransform() メソッドを使用して、座標系を反時計回りに45度回転させます。このステップと上記のステップにより、透かしが45度の角度でページの中央に表示されることが確認されました。
  • PdfPageBase->GetCanvas()->DrawString() メソッドを使用して、ページ上にテキストの透かしを描きます。
  • PdfDocument->SaveToFile() メソッドを使用して、ドキュメントを別の PDF ファイルに保存します。
  • C++
#include "Spire.Pdf.o.h";

using namespace std;
using namespace Spire::Pdf;
using namespace Spire::Common;

int main()
{
	//入力ファイルおよび出力ファイルのパスを指定する
	wstring inputFilePath = L"C:/私たちの間の距離.pdf";
	wstring outputFilePath = L"Output/単一のテキスト透かし.pdf";

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

	//PDFファイルを読み込む
	doc->LoadFromFile(inputFilePath.c_str());

	//フォントを作成する
	PdfTrueTypeFont* font = new PdfTrueTypeFont(L"Yu Gothic", 50.0f, PdfFontStyle::Bold, true);

	//ブラシを作成する
	PdfBrush* brush = PdfBrushes::GetDarkGray();

	//透かしのテキストを指定する
	wstring text = L"コピー禁止";

	//文字サイズを測る
	SizeF textSize = font->MeasureString(text.c_str());

	//座標系の移動量を算出するための2つのオフセットを算出する
	float offset1 = (float)(textSize.GetWidth() * sqrt(2) / 4);
	float offset2 = (float)(textSize.GetHeight() * sqrt(2) / 4);

	//ドキュメント内のページをループする
	for (size_t i = 0; i < doc->GetPages()->GetCount(); i++)
	{
		//特定のページを取得する
		PdfPageBase* page = doc->GetPages()->GetItem(i);

		//ページの透明度を設定する
		page->GetCanvas()->SetTransparency(0.8);

		//座標系を指定した座標に変換する
		page->GetCanvas()->TranslateTransform(page->GetCanvas()->GetSize()->GetWidth() / 2 - offset1 - offset2, page->GetCanvas()->GetSize()->GetHeight() / 2 + offset1 - offset2);

		//座標系を反時計回りに45度回転させる
		page->GetCanvas()->RotateTransform(-45);

		//ページ上に透かしテキストを描く
		page->GetCanvas()->DrawString(text.c_str(), font, brush, 0, 0, new PdfStringFormat(PdfTextAlignment::Left));
	}

	//ドキュメントを保存する
	doc->SaveToFile(outputFilePath.c_str());
	doc->Close();
	delete doc;
}

C++:PDF ドキュメントにテキスト透かしを追加する方法

PDF ドキュメントにタイル状のテキスト透かしを追加する

タイル状の透かし効果を得るには、PdfTilingBrush クラスを利用することができます。タイルのブラシは、図形領域を埋めるために繰り返されるタイル状のパターンを生成します。以下は、PDF ドキュメントにタイル状のテキスト透かしを追加する手順です。

  • PDF ページにタイル状の透かしを追加するカスタムメソッド InsertTiledTextWatermark(PdfPageBase* page, wstring watermarkText, PdfTrueTypeFont* font, int rowNum, int columnNum) を作成することができます。パラメータ rowNumcolumnNum は、タイル状の透かしの行番号と列番号を指定します。
  • PdfDocument のオブジェクトを作成します。
  • PdfDocument->LoadFromFile() メソッドを使用して、PDFドキュメントを読み込みます。
  • ドキュメント内の全ページをループし、カスタムメソッド InsertTiledTextWatermark() を呼び出して、各ページに透かしを挿入します。
  • PdfDocument->SaveToFile() メソッドを使用して、ドキュメントを別のファイルに保存します。
  • C++
#include "Spire.Pdf.o.h";

using namespace std;
using namespace Spire::Pdf;
using namespace Spire::Common;

static void InsertTiledTextWatermark(PdfPageBase* page, wstring watermarkText, PdfTrueTypeFont* font, int rowNum, int columnNum)
{
	//文字サイズを測る
	SizeF textSize = font->MeasureString(watermarkText.c_str());

	//座標系の移動量を算出するための2つのオフセットを算出する
	float offset1 = (float)(textSize.GetWidth() * sqrt(2) / 4);
	float offset2 = (float)(textSize.GetHeight() * sqrt(2) / 4);

	//ページの高さと幅を取得する
	float height = page->GetActualSize()->GetHeight();
	float width = page->GetActualSize()->GetWidth();

	//タイル型のブラシを作成する
	PdfTilingBrush* brush = new PdfTilingBrush(new SizeF(width / columnNum, height / rowNum));
	brush->GetGraphics()->SetTransparency(0.5f);
	brush->GetGraphics()->TranslateTransform(brush->GetSize()->GetWidth() / 2 - offset1 - offset2, brush->GetSize()->GetHeight() / 2 + offset1 - offset2);
	brush->GetGraphics()->RotateTransform(-45);

	//ブラシに透かしテキストを描く
	brush->GetGraphics()->DrawString(watermarkText.c_str(), font, PdfBrushes::GetRed(), 0, 0, new PdfStringFormat(PdfTextAlignment::Left));

	//タイリングブラシでページ全体を覆うように矩形を描く
	page->GetCanvas()->DrawRectangle(brush, new RectangleF(new PointF(0, 0), page->GetActualSize()));
}

int main()
{
	//入力ファイルおよび出力ファイルのパスを指定する
	wstring inputFilePath = L"C:/私たちの間の距離.pdf";
	wstring outputFilePath = L"Output/タイル状のテキスト透かし.pdf";

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

	//PDFファイルを読み込む
	doc->LoadFromFile(inputFilePath.c_str());

	//透かしのテキストを指定する
	wstring text = L"下書き";

	//フォントを作成する
	PdfTrueTypeFont* font = new PdfTrueTypeFont(L"Yu Gothic", 20.0f, PdfFontStyle::Bold, true);

	//ドキュメント内のページをループする
	for (size_t i = 0; i < doc->GetPages()->GetCount(); i++)
	{
		//カスタムメソッドを呼び出して、タイル状のテキスト透かしを挿入します。
		InsertTiledTextWatermark(doc->GetPages()->GetItem(i), text.c_str(), font, 3, 3);
	}

	//ドキュメントを保存する
	doc->SaveToFile(outputFilePath.c_str());
	doc->Close();
	delete doc;
}

C++:PDF ドキュメントにテキスト透かしを追加する方法

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

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

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

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
New feature SPIREPDF-5706 ドキュメントの圧縮機能が最適化されました。
PdfCompressor compressor = new PdfCompressor(inputFile);
compressor.getOptions().getImageCompressionOptions().setResizeImages(true);
compressor.getOptions().getImageCompressionOptions().setImageQuality(ImageQuality.Low);
compressor.compressToFile(outputFile);
Bug SPIREPDF-5655 PDFをExcelに変換した後にキャラクターの表示が正しくない問題が修正されました。
Bug SPIREPDF-5767 注記の削除に失敗した問題が修正されました。
Bug SPIREPDF-5776 正方形と円形の注釈の削除に失敗した問題が修正されました。
Bug SPIREPDF-5778 セルを改行しないように設定したときにセルの内容が失われていた問題が修正されました。
ここでSpire.PDF for Java 9.2.5をダウンロードする

透かしとは、文書の内容の後ろに表示される薄い色のテキストや画像のことで、文書の状態(機密、下書きなど)を示したり、会社のロゴを暗黙のうちに表示するために使用することができます。 透かしは、文書の出所を示すのに役立ち、無許可のコピーや再配布を避けることができます。 この記事では、Spire.PDF for C++ を使用して PDF 文書に画像透かしを追加する方法について説明します。

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

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

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

PDF 文書に単一の画像透かしを追加する

SpriePDF for C++ は、PdfPageBase->GetCanvas()->DrawImage() メソッドを提供し、PDF ページ上の任意の場所に画像を描画します。 そして、画像が文書の内容を覆い隠さないように、画像の透明度を調整することができます。 単一の画像透かしを追加する操作手順は以下の通りです。

  • PdfDocument のオブジェクトを作成します。
  • PdfDocument->LoadFromFile() メソッドを使用して、PDF ファイルを読み込みます。
  • PdfImage::FromFile() メソッドを使用して画像を読み込みます。
  • 文書ページをループして透かしを描画します。
  • PdfDocument->GetPages()->GetItem() メソッドを使用して、指定されたページを取得します。
  • PdfPageBase->GetCanvas()->SetTransparency() メソッドを使用して、透明度を設定します。
  • PdfPageBase->GetCanvas()->DrawImage() メソッドを使用して、ページ上に画像を描画します。
  • PdfDocument->SaveToFile() メソッドを使用して、ドキュメントを保存します。
  • C++
#include "Spire.Pdf.o.h"

using namespace Spire::Pdf;

int main()
{
	//PdfDocumentのオブジェクトを作成する
	PdfDocument* document = new PdfDocument();

	//PDFファイルを読み込む
	document->LoadFromFile(L"C:/私たちの間の距離.pdf");

	//画像を読み込む
	PdfImage* img = PdfImage::FromFile(L"C:/Logo.png");

	//画像の高さと幅を取得する
	int imageWidth = img->GetWidth();
	int imageHeight = img->GetHeight();

	//ページをループする
	for (int i = 0; i < document->GetPages()->GetCount(); i++)
	{
		//指定したページを取得する
		PdfPageBase* page = document->GetPages()->GetItem(i);

		//ページの高さと幅を取得する
		float pageWidth = (float)(page->GetActualSize()->GetWidth());
		float pageHeight = (float)(page->GetActualSize()->GetHeight());

		//透明度を設定する
		page->GetCanvas()->SetTransparency(0.3f);

		//ページの中央に画像を描画する
		page->GetCanvas()->DrawImage(img, pageWidth / 2 - imageWidth / 2, pageHeight / 2 - imageHeight / 2, imageWidth, imageHeight);
	}

	//ドキュメントを保存する
	document->SaveToFile(L"Output/単一の画像電子透かし.pdf");
	document->Close();
	delete document;
}

C++:PDF ドキュメントに画像透かしを追加する方法

PDF 文書にタイル状の画像透かしを追加する

PdfTilingBrush クラスは、タイリングブラシを表し、領域を埋めるためにタイリングパターンを生成することができます。 以下は、タイル状の画像透かしを挿入するための詳細な手順です。

  • カスタムのメソッド InsertTiledImagetWatermark(PdfPageBase* page, PdfImage* image, int rowNum, int columnNum) を作成して、PDF ページにタイル状の透かしを追加します。 パラメータ rowNum と columnNum を通して、タイル状の透かしの行と列の数を指定することができます。
  • PdfDocument のオブジェクトを作成します。
  • PdfDocument->LoadFromFile() メソッドを使用して、PDF 文書を読み込みます。
  • ドキュメント内のすべてのページをループし、カスタムメソッド InsertTiledImageWatermark() を呼び出して、各ページに透かしを追加します。
  • PdfDocument->SaveToFile() メソッドを使用して、ドキュメントを保存します。
  • C++
#include "Spire.Pdf.o.h"

using namespace Spire::Pdf;

void InsertTiledImageWatermark(PdfPageBase* page, PdfImage* img, int row, int column) {
    //タイルブラシを作成する
    PdfTilingBrush* brush = new PdfTilingBrush(new SizeF(page->GetCanvas()->GetSize()->GetWidth() / (int)(row), page->GetCanvas()->GetSize()->GetHeight() / (int)(column)));
    //透明度を設定する
    brush->GetGraphics()->SetTransparency(0.3);
    //ブラシに画像を描き込む
    brush->GetGraphics()->DrawImage(img, new PointF((brush->GetSize()->GetWidth() - img->GetWidth()) / 2.f, (brush->GetSize()->GetHeight() - img->GetHeight()) / 2.f));
    //ブラシを使ってページに画像を描画する
    page->GetCanvas()->DrawRectangle(brush, new RectangleF(new PointF(0, 0), page->GetCanvas()->GetSize()));
}

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

    //PDFファイルを読み込む
    pdf->LoadFromFile(L"C:/私たちの間の距離.pdf");

    //画像を読み込む
    PdfImage* img = PdfImage::FromFile(L"C:/Logo.png");

    //ページをループする
    for (int i = 0; i < pdf->GetPages()->GetCount(); i++) {
        //ページを取得する
        PdfPageBase* page = pdf->GetPages()->GetItem(i);
        //ページに透かしを入れる
        InsertTiledImageWatermark(page, img, 3, 3);
    }

    //ドキュメントを保存する
    pdf->SaveToFile(L"Output/タイル状の画像透かし.pdf");
    pdf->Close();
    delete pdf;
}

C++:PDF ドキュメントに画像透かしを追加する方法

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

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

Spire.PDF 9.3.4のリリースを発表できることを嬉しく思います。このバージョンでは、PDFドキュメントにフォントを埋め込む機能と、「ドメインの表示/非表示」アクションを作成する機能がサポートされました。ドキュメントの圧縮機能も最適化されています。また、PDFをWordに変換した後の内容が正しくないなど、既知の問題も修正されました。詳細は以下の内容を読んでください。

このリリースで行われた変更のリストは次のとおりです
カテゴリー ID 説明
New feature SPIREPDF-3933 PDFドキュメントにフォントを埋め込む機能がサポートされました。
PdEmbeddedFontConverter converter = new PdEmbeddedFontConverter ("InputFile");
convert.ToEmbeddedFontPdf("resultFile");
New feature SPIREPDF-5396 「ドメインの表示/非表示」アクションを作成する機能がサポートされました。
PdfDocument pdf = new PdfDocument(inputFile);
pdf.LoadFromFile(inputFile);
for (int c = 0; c < pdf.Pages.Count; c++)
{
    PdfFormWidget formWidget = pdf.Form as PdfFormWidget;
    for (int i = 0; i < formWidget.FieldsWidget.List.Count; i++)
    {
        PdfField field = formWidget.FieldsWidget.List[i] as PdfField;
        if (field is PdfButtonWidgetFieldWidget)
        {
            PdfButtonWidgetFieldWidget buttonWidget = field as PdfButtonWidgetFieldWidget;
            PdfHideAction hideAction = new PdfHideAction(buttonWidget.Name, true);
            buttonWidget.MouseDown = hideAction;
        }
    }
}
pdf.SaveToFile(outputFile);
pdf.Dispose();
New feature SPIREPDF-5769 ドキュメントの圧縮機能が最適化されました。
PdfCompressor compressor = new PdfCompressor("1.pdf");
compressor.Options.TextCompressionOptions.UnembedFonts = true;
compressor.Options.ImageCompressionOptions.CompressImage = true;
compressor.Options.ImageCompressionOptions.ResizeImages = true;
compressor.Options.ImageCompressionOptions.ImageQuality = ImageQuality.Low;
compressor.CompressToFile("1_out.pdf");
Bug SPIREPDF-5436 SPIREPDF-5743 PDFをWordに変換した後に、内容が正しくない問題が修正されました。
Bug SPIREPDF-5519 OFDをPDFに変換した後に、文字化けとボックスの問題が修正されました。
Bug SPIREPDF-5702 正しいパスワードを入力した後、Adobe Readerを使用してAndroidデバイスで暗号化されたドキュメントを開くことができなかった問題が修正されました。
Bug SPIREPDF-5730 PDFをマージした後にラジオボタンがデフォルトオプション機能を失っていた問題が修正されました。
Bug SPIREPDF-5738 ハイライトされたテキストが画像に変換されてカバーされていた問題が修正されました。
Bug SPIREPDF-5749 PDFを画像に変換した後に内容が正しくない問題が修正されました。
Bug SPIREPDF-5761 XPSをPDFに変換した後に内容が正しくない問題が修正されました。
Bug SPIREPDF-5766 PDFを画像に変換した後に背景色の変化の問題が修正されました。
Bug SPIREPDF-5788 PDFページをテンプレートとして新しいドキュメントに描画した後、赤章の色が青色に変化する問題が修正されました。
Bug SPIREPDF-5790 PDFをマージする際にアプリケーションが「System.ArgumentOutOfRangeException」をスローする問題が修正されました。
Bug SPIREPDF-5797 PDFをXPSに変換した後に線が失われていた問題が修正されました。
Bug SPIREPDF-5798 PDFをWordに変換した後に内容が失われていた問題が修正されました。
Bug SPIREPDF-5805 PDFをSVGに変換する際にアプリケーションが「System.ArgumentException:'Parameter is not valid'」をスローする問題が修正されました。
Bug SPIREPDF-5809 OFDをPDFに変換する際にアプリケーションが「System.IO.FileNotFoundException」をスローする問題が修正されました。
ここで Spire.PDF 9.3.4をダウンロードする