Java を使用して PSD ファイル内のテキスト部分にスタイルを設定する

導入

PSD ファイルのテキスト レイヤーに魅力を加えたいと思ったことはありませんか? Aspose.PSD for Java を使用すると、テキストを操作するだけでなく、個々の部分を驚くほど正確にスタイル設定できます。この包括的なガイドでは、環境の設定から PSD 内での見事なスタイルのテキスト要素の作成まで、プロセスをステップごとに説明します。

前提条件

始める前に、以下のものを用意しておいてください。

  • Java 開発キット (JDK): これから説明するコードを実行するには、システムに JDK がインストールされている必要があります。Java の Web サイト ( https://www.oracle.com/java/technologies/javase-downloads.html ダウンロードとインストールの手順については、こちらをご覧ください。
  • Aspose.PSD for Java ライブラリ: このライブラリを使用すると、PSD ファイルをプログラムで操作できます。Aspose の Web サイト ( https://releases.aspose.com/psd/java/ をクリックしてライブラリをダウンロードしてください。すべての機能を使用するにはライセンスが必要ですが、無料で試用できるので、ぜひお試しください。

パッケージのインポート

すべての設定が完了したら、お気に入りの Java IDE を開いてコーディングを始めましょう。最初のステップは、Aspose.PSD for Java から必要なパッケージをインポートすることです。

import com.aspose.psd.Color;
import com.aspose.psd.Image;
import com.aspose.psd.fileformats.psd.PsdImage;
import com.aspose.psd.fileformats.psd.layers.TextLayer;
import com.aspose.psd.fileformats.psd.layers.text.IText;
import com.aspose.psd.fileformats.psd.layers.text.ITextParagraph;
import com.aspose.psd.fileformats.psd.layers.text.ITextPortion;
import com.aspose.psd.fileformats.psd.layers.text.ITextStyle;
import com.aspose.psd.fileformats.psd.layers.text.rendering.FontBaseline;
import com.aspose.psd.fileformats.psd.layers.text.rendering.FontCaps;

これらのインポートにより、PSD ファイルの操作に必要なクラスと機能にアクセスできるようになります。

さて、本当の魔法を始めましょう! PSD ファイル内のテキスト部分のスタイル設定に必要な手順を次に示します。

ステップ1: PSDファイルを読み込む

まず最初に、変更したいテキスト レイヤーを含む PSD ファイルを読み込む必要があります。手順は次のとおりです。

String sourceDir = "yourSourceDirectory";
String inPsdFilePath = sourceDir + "text212.psd";

PsdImage psdImage = (PsdImage)Image.load(inPsdFilePath);

このコードスニペットは、ソースPSDファイルへのパスを定義します(inPsdFilePath )を使用し、Image.loadファイルを読み込むメソッドPsdImage物体。

ステップ2: テキストレイヤーにアクセスする

PSD ファイルには、さまざまな種類のレイヤーを含めることができます。特にテキストを操作するには、テキスト レイヤー オブジェクトにアクセスする必要があります。方法は次のとおりです。

TextLayer textLayer = (TextLayer)psdImage.getLayers()[1];

このコードは、最初のレイヤーのテキストを変更することを前提としています(psdImage.getLayers()[1])。PSD ファイル内のレイヤーの順序は異なる場合があるため、テキスト レイヤーの位置が異なる場合はそれに応じてインデックスを調整することに注意してください。

ステップ3: テキストデータの操作

TextLayerオブジェクトはテキストの内容とその書式に関するすべての情報を保持しています。この情報には、getTextData方法:

IText textData = textLayer.getTextData();

IText物体 (textData) は、レイヤーのテキスト コンテンツを表します。テキスト自体とそのスタイルを操作する機能を提供します。

ステップ 4: デフォルト スタイルの定義 (オプション)

必ずしも必要ではありませんが、テキストと段落のデフォルト スタイルを定義すると、ワークフローを効率化できます。これにより、特定の部分に対して簡単に上書きできるベースライン スタイルを設定できます。

ITextStyle defaultStyle = textData.producePortion().getStyle();
defaultStyle.setFillColor(Color.getDimGray());
defaultStyle.setFontSize(51);

ITextParagraph defaultParagraph = textData.producePortion().getParagraph();

このコードは新しいITextStyle物体 (defaultStyle)を作成し、塗りつぶしの色やフォントサイズなどのプロパティを設定します。同様に、新しいITextParagraph物体 (defaultParagraphは、デフォルトの段落設定を定義するために作成されます。

ステップ5: 既存のテキスト部分のスタイル設定

レイヤー内の既存のテキストの特定の部分に取り消し線効果を追加したいとします。その方法は次のとおりです。

textData.getItems()[1].getStyle().setStrikethrough(true);

このコードは2番目のテキスト部分を取得します(textData.getItems()[1] )を設定し、strikethrough財産にtrue同様に他の部分にアクセスし、さまざまな方法を使用してスタイルを変更できます。ITextStyleインタフェース。

ステップ6: スタイルを使用して新しいテキスト部分を作成する

最初から特定のスタイルを適用した新しいテキスト要素を追加したいですか? Aspose.PSD for Java ではそれも可能です!

String[] newTextStrings = {"E=mc2", "Bold", "Italic", "Lowercasetext"};
ITextPortion[] newTextPortions = textData.producePortions(newTextStrings, defaultStyle, defaultParagraph);

このコードは文字列の配列を作成します(newTextStrings )を新しい部分のテキストコンテンツとして保存します。次に、textData.producePortions配列を作成するITextPortionオブジェクト、適用defaultStyleそしてdefaultParagraph各部分に。

ステップ7: 新しいテキスト部分のカスタマイズ

新しいテキスト部分ができたら、個々の部分に特定のスタイルを適用できます。

newTextPortions[0].getStyle().setUnderline(true); // 「E=mc2」の下線
newTextPortions[1].getStyle().setFauxBold(true); //「太字」の太字
newTextPortions[2].getStyle().setFauxItalic(true); //「イタリック」のイタリック体
newTextPortions[3].getStyle().setFontCaps(FontCaps.SmallCaps); //「小文字テキスト」の小文字大文字

ここでは、最初の 3 つの新しいテキスト部分のスタイルをカスタマイズしています。要件に応じて、さまざまなスタイル オプションを適用できます。

ステップ8: レイヤーに新しいテキスト部分を追加する

新しいテキスト部分をカスタマイズしたら、それをテキスト レイヤーに追加する必要があります。

for (ITextPortion newTextPortion : newTextPortions) {
    textData.addPortion(newTextPortion);
}

このコードは、newTextPortions配列を作成し、各部分をtextData物体。

ステップ9: レイヤーに変更を適用する

PSD レイヤーのテキスト データに加えられた変更を反映するには、レイヤーを更新する必要があります。

textData.updateLayerData();

この呼び出しにより、textLayer変更が加えられたtextData.

ステップ10: 変更したPSDファイルを保存する

最後に、変更した PSD ファイルを新しい場所に保存します。

String outputDir = "yourOutputDirectory";
String outPsdFilePath = outputDir + "Output_text212.psd";

psdImage.save(outPsdFilePath);

このコードは出力ファイルパスを作成し、psdImageオブジェクトを指定された場所に移動します。

結論

これで完了です。Aspose.PSD for Java を使用して、PSD ファイル内のテキスト部分のスタイル設定に成功しました。これらの手順に従い、利用可能なさまざまなスタイル設定オプションを調べることで、PSD 内に視覚的に魅力的でカスタマイズされたテキスト要素を作成できます。

覚えておいてください、これは単なる出発点です。Aspose.PSD for Java は、高度な書式設定、段落制御など、テキスト操作のための幅広い機能を提供します。実験して創造性を発揮し、希望する結果を達成してください。

よくある質問

特定のテキスト部分のフォントを変更できますか?

はい、テキスト部分のフォントを変更するには、setFontName方法のITextStyle物体。

段落内のテキストの配置を調整するにはどうすればよいですか?

ITextParagraphオブジェクトは次のようなプロパティを提供しますsetAlignment段落内のテキストの配置を制御します。

テキストの文字間隔を変更することは可能ですか?

はい、文字間隔を調整できます。setCharacterSpacing方法のITextStyle物体。

単一のテキスト部分の異なる部分に異なるスタイルを適用できますか?

直接サポートされていませんが、同じ全体部分内に複数のテキスト部分を作成することで、同様の効果を実現できます。

処理できるテキスト部分や文字数に制限はありますか?

実際の制限は、システム リソースと PSD ファイルの複雑さによって異なります。ただし、Aspose.PSD for Java は、大きな PSD ファイルを効率的に処理できるように設計されています。