Nakreslete XForm na stránku

V tomto tutoriálu vám poskytneme průvodce krok za krokem, jak nakreslit XForm na stránku pomocí Aspose.PDF pro .NET. Aspose.PDF je výkonná knihovna, která vám umožňuje programově vytvářet, manipulovat a převádět dokumenty PDF. Pomocí operátorů poskytovaných Aspose.PDF můžete přidat a umístit formulář XForm na existující stránku PDF.

Předpoklady

Než začnete, ujistěte se, že máte splněny následující předpoklady:

  1. Visual Studio nainstalované s .NET frameworkem.
  2. Knihovna Aspose.PDF pro .NET.

Krok 1: Nastavení projektu

Chcete-li začít, vytvořte nový projekt v sadě Visual Studio a přidejte odkaz na knihovnu Aspose.PDF for .NET. Knihovnu si můžete stáhnout z oficiálních stránek Aspose a nainstalovat ji do svého počítače.

Krok 2: Importujte potřebné jmenné prostory

Do souboru s kódem C# importujte jmenné prostory potřebné pro přístup ke třídám a metodám poskytovaným Aspose.PDF:

using System;
using System.IO;
using Aspose.Pdf;
using Aspose.Pdf.Operators;

Krok 3: Nastavení cest k souboru

Definujte cesty k souboru pro obrázek na pozadí, vstupní soubor PDF a výstupní soubor PDF:

string dataDir = "YOUR_DIRECTORY_OF_DOCUMENTS";
string imageFile = dataDir + "aspose-logo.jpg";
string inFile = dataDir + "DrawXFormOnPage.pdf";
string outFile = dataDir + "blank-sample2_out.pdf";

Nezapomeňte zadat skutečné cesty k souborům na vašem počítači.

Krok 4: Načtení vstupního souboru PDF

Pro načtení vstupního souboru PDF použijte následující kód:

using (Document doc = new Document(inFile))
{
OperatorCollection pageContents = doc.Pages[1].Contents;
// Následující kód používá operátory GSave/GRestore
// Kód používá k umístění XForm operátor ContatenateMatrix
// Kód používá operátor Do k nakreslení XFormu na stránku
// Operátoři GSave/GRestore obalují stávající obsah
// to se provádí za účelem získání počátečního grafického stavu na konci existujícího obsahu
// jinak mohou na konci řetězce stávajících operátorů zůstat nechtěné transformace
pageContents. Insert(1, new GSave());
pageContents. Add(new GRestore());
// Přidejte operátor GSave pro správné resetování stavu grafiky po nových příkazech
pageContents. Add(new GSave());

// Vytvořte XForm
XForm form = XForm.CreateNewForm(doc.Pages[1], doc);
doc.Pages[1].Resources.Forms.Add(form);
form.Contents.Add(new GSave());
// Nastavte šířku a výšku obrázku
form.Contents.Add(new ConcatenateMatrix(200, 0, 0, 200, 0, 0));
// Načtěte obrázek do streamu
Stream imageStream = new FileStream(imageFile, FileMode.Open);
// Přidejte obrázek do kolekce obrázků prostředků XForm
form.Resources.Images.Add(imageStream);
XImage ximage = form.Resources.Images[form.Resources.Images.Count];
// Použití operátoru Do: tento operátor nakreslí obrázek
form.Contents.Add(new Do(ximage.Name));
form.Contents.Add(new GRestore());

pageContents. Add(new GSave());
//Umístěte XForm na souřadnice x=100 a y=500
pageContents. Add(new ConcatenateMatrix(1, 0, 0, 1, 100, 500));
// Nakreslete XForm pomocí operátoru Do
pageContents.Add(new Do(form.Name));
pageContents. Add(new GRestore());

pageContents. Add(new GSave());
// Umístěte XForm na souřadnice x=100 a y=300
pageContents. Add(new ConcatenateMatrix(1, 0, 0, 1, 100, 300));
// Nakreslete XForm pomocí operátoru Do
pageContents.Add(new Do(form.Name));
pageContents. Add(new GRestore());

// Obnovte stav grafiky pomocí GRestore po GSave
pageContents. Add(new GRestore());
doc.Save(outFile);
}

Ujistěte se, že jste specifikovali skutečné cesty k souboru a podle potřeby upravte číslo stránky a pozice XForm.

Ukázkový zdrojový kód pro Draw XForm On Page pomocí Aspose.PDF pro .NET


// Cesta k adresáři dokumentů.
string dataDir = "YOUR DOCUMENT DIRECTORY";
string imageFile = dataDir+ "aspose-logo.jpg";
string inFile = dataDir + "DrawXFormOnPage.pdf";
string outFile = dataDir + "blank-sample2_out.pdf";
using (Document doc = new Document(inFile))
{
	OperatorCollection pageContents = doc.Pages[1].Contents;
	// Ukázka ukazuje
	// Využití operátorů GSave/GRestore
	// Použití operátoru ContatenateMatrix k umístění xForm
	// Pomocí operátora nakreslete xForm na stránku
	// Zabalte existující obsah pomocí dvojice operátorů GSave/GRestore
	// toto je získat počáteční grafický stav na a existujícího obsahu
	// jinak by na konci řetězce stávajících operátorů mohly zůstat některé nežádoucí transformace
	pageContents.Insert(1, new Aspose.Pdf.Operators.GSave());
	pageContents.Add(new Aspose.Pdf.Operators.GRestore());
	// Přidejte operátor uložení stavu grafiky, abyste správně vymazali stav grafiky po nových příkazech
	pageContents.Add(new Aspose.Pdf.Operators.GSave());
	#region create xForm
	// Vytvořte xForm
	XForm form = XForm.CreateNewForm(doc.Pages[1], doc);
	doc.Pages[1].Resources.Forms.Add(form);
	form.Contents.Add(new Aspose.Pdf.Operators.GSave());
	// Definujte šířku a výšku obrázku
	form.Contents.Add(new Aspose.Pdf.Operators.ConcatenateMatrix(200, 0, 0, 200, 0, 0));
	// Načíst obrázek do streamu
	Stream imageStream = new FileStream(imageFile, FileMode.Open);
	//Přidejte obrázek do kolekce Images v XForm Resources
	form.Resources.Images.Add(imageStream);
	XImage ximage = form.Resources.Images[form.Resources.Images.Count];
	// Použití operátoru Do: tento operátor kreslí obrázek
	form.Contents.Add(new Aspose.Pdf.Operators.Do(ximage.Name));
	form.Contents.Add(new Aspose.Pdf.Operators.GRestore());
	#endregion
	pageContents.Add(new Aspose.Pdf.Operators.GSave());
	// Umístěte formulář na souřadnice x=100 y=500
	pageContents.Add(new Aspose.Pdf.Operators.ConcatenateMatrix(1, 0, 0, 1, 100, 500));
	// Nakreslete formulář pomocí operátoru Do
	pageContents.Add(new Aspose.Pdf.Operators.Do(form.Name));
	pageContents.Add(new Aspose.Pdf.Operators.GRestore());
	pageContents.Add(new Aspose.Pdf.Operators.GSave());
	// Umístěte formulář na souřadnice x=100 y=300
	pageContents.Add(new Aspose.Pdf.Operators.ConcatenateMatrix(1, 0, 0, 1, 100, 300));
	// Nakreslete formulář pomocí operátoru Do
	pageContents.Add(new Aspose.Pdf.Operators.Do(form.Name));
	pageContents.Add(new Aspose.Pdf.Operators.GRestore());
	// Obnovte stav grafiky pomocí GRestore po GSave
	pageContents.Add(new Aspose.Pdf.Operators.GRestore());
	doc.Save(outFile);                
}

Závěr

V tomto tutoriálu jste se naučili, jak nakreslit formulář XForm na stránku PDF pomocí Aspose.PDF for .NET. Podle popsaných kroků budete moci přidat a umístit formulář XForm na existující stránku, čímž poskytnete vašim dokumentům PDF větší flexibilitu.

Často kladené otázky pro draw XForm na stránce

Otázka: Co je XForm v Aspose.PDF?

Odpověď: XForm je opakovaně použitelný grafický objekt v dokumentu PDF. Umožňuje definovat a kreslit komplexní grafiku, obrázky nebo text, které lze opakovaně použít na různých stránkách.

Otázka: Jak naimportuji potřebné jmenné prostory pro Aspose.PDF?

Odpověď: V souboru kódu C# použijte souborusing direktiva pro import požadovaných jmenných prostorů pro přístup ke třídám a metodám poskytovaným Aspose.PDF:

using System;
using System.IO;
using Aspose.Pdf;
using Aspose.Pdf.Operators;

Otázka: Jaký je účel operátorů GSave a GRestore?

A:GSave aGRestoreoperátory v Aspose.PDF se používají k uložení a obnovení stavu grafiky. Pomáhají zajistit, aby transformace a nastavení aplikované na jednu část obsahu neovlivnily následující části.

Otázka: Jak mohu definovat XForm pomocí Aspose.PDF?

A: Chcete-li vytvořit XForm, použijteXForm.CreateNewForm metodu a přidejte ji doResources.Forms kolekce konkrétní stránky. Poté můžete přidat obsah do XFormuContents vlastnictví.

Otázka: Jak mohu nakreslit obrázek v XFormu?

Odpověď: Načtěte obrázek do streamu a přidejte jej doResources.Images kolekce XFormu. PoužijteDo operátor v rámci XFormuContents nakreslit obrázek.

Otázka: Jak umístím XFormulář na stránku PDF?

A: Chcete-li umístit XForm na stránku, použijteConcatenateMatrix operátor v rámci stránkyContents. Upravte parametry matice, abyste určili posun (pozici) a měřítko XFormu.

Otázka: Mohu nakreslit více XFormů na stejnou stránku?

Odpověď: Ano, můžete nakreslit více XFormů na stejnou stránku úpravouConcatenateMatrixparametry pro umístění každého XFormu na jiné souřadnice.

Otázka: Mohu upravit obsah XFormu po jeho vytvoření?

Odpověď: Ano, po vytvoření můžete upravit obsah XForm přidáním dalších operátorůContents vlastnictví.

Otázka: Co se stane, když vynechám operátory GSave a GRestore?

Odpověď: Vynechání operátorů GSave a GRestore může vést k nechtěným transformacím nebo nastavením, která budou aplikována na následný obsah. Jejich používání pomáhá udržovat čistý grafický stav.

Otázka: Mohu znovu použít XForms na různých stránkách dokumentu PDF?

Odpověď: Ano, můžete znovu použít XForms na více stránkách přidáním stejného XFormu doResources.Forms sbírka různých stránek.

Otázka: Existuje nějaký limit na počet XForms, které mohu vytvořit?

Odpověď: I když neexistuje žádný přísný limit na počet XForms, které můžete vytvořit, mějte na paměti, že příliš mnoho XFormů může ovlivnit výkon a využití paměti. Používejte je uvážlivě.

Otázka: Mohu otočit XForm nebo použít jiné transformace?

Odpověď: Ano, můžete použítConcatenateMatrixoperátor pro použití transformací, jako je rotace, změna měřítka a posunutí na XForm.