Как да работите с управление на основни документи в .NET

Как да работите с управление на основни документи в .NET

Aspose.PDF FOSS for .NET provides the Document инсталирайте пакета с помощта на dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha и употреба Document.Create(), Document.Open(), Document.Save(), и Document.Merge() да управлява PDF документи по програма в .NET 8+.

Постепенно ръководство

Стъпка 1: Инсталирайте пакета

Добавете Aspose.PDF FOSS към вашия проект:

dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha

Проверете посоченото в Вашата декларация. .csproj:

<PackageReference Include="Aspose.Pdf.Foss" Version="0.1.0-alpha" />

Стъпка 2: Импортиране на необходимите класове

Добавете необходимите директиви за използване в горната част на файла:

using Aspose.Pdf;
using Aspose.Pdf.Annotations;

Стъпка 3: Създаване на нов PDF документ

Използване на: Document.Create() да се изготви празен документ в паметта:

using var doc = Document.Create();
// The document has no pages yet; add pages before saving
using var ms = new MemoryStream();
doc.Save(ms);
byte[] pdfBytes = ms.ToArray();

Стъпка 4: Отворете съществуващ PDF файл

Document.Open приема байт масив, файлов път или поток. Използвайте using за да се гарантира, че документът е изхвърлен след употреба:

// From a file path
using var doc = Document.Open("input.pdf");
var page = doc.Pages[1];
// From a byte array loaded elsewhere
byte[] data = File.ReadAllBytes("input.pdf");
using var doc2 = Document.Open(data);

Стъпка 5: Достъпни страници

Съветът на ЕС Document.Pages свойството връща a PageCollection.Страници са с 1-индексирани:

using var doc = Document.Open("input.pdf");
int pageCount = doc.Pages.Count;
var firstPage = doc.Pages[1];
double width = firstPage.Width;
double height = firstPage.Height;

Стъпка 6: Запази документ

Загуби към поток с Document.Save(), или сериализиране на байт масив с Document.ToArray():

using var doc = Document.Open("input.pdf");
var page = doc.Pages[1];
var action = PdfAction.CreateUri("https://aspose.com/test");
page.Annotations.AddLinkAnnotation(new Rectangle(50, 700, 200, 720), action);
using var ms = new MemoryStream();
doc.Save(ms);
ms.Position = 0;
byte[] savedBytes = ms.ToArray();

Стъпка 7: Съчетаване на няколко документа

Използване на: Document.Merge() да комбинират множество Document Инстанции в едно:

using var doc1 = Document.Open("part1.pdf");
using var doc2 = Document.Open("part2.pdf");
var merged = Document.Merge(new[] { doc1, doc2 });
merged.Save("combined.pdf");

Document.MergeDocuments() е еквивалентно претоварване, което приема масивите на файловата пътека директно.

Обичайни проблеми и решения

Сборникът от страници е празен след Document.Create() Document.Create() Върта документ без страници. Трябва да добавите страница преди достъп до него doc.Pages[1].Опитът да се достъпиш до индекс, който не съществува хвърля “защита” на кода. IndexOutOfRangeException.

InvalidOperationException при повикване на Document.Open в повреден файл Ако PDF байт масивът или файлът е прекъснат или невалиден, Document.Open ще хвърли. Потвърдете, че източникът на байт масив е пълен PDF (започва с %PDF-) преди да бъде предадена на: Open.

Документ не е изхвърлен теч от памет при сценарии с висока пропускна способност Винаги опаковайте. Document.Open и в) Document.Create повиква в using Изявление. Document класни инструменти IDisposable; ако не се изхвърли, основният поток и таблицата за кръстосани препратки остават в паметта.

Save ((ms) след ms.Позицията не се ресетира Когато четеш от “А” MemoryStream след това doc.Save(ms), ресетиране ms.Position = 0 Ако пропуснете тази стъпка, читателят ще се сблъска с празен или частичен PDF.

Сливане създава документ с неочакван брой страници Уверете се, че всички източни документи са напълно заредени преди да ги предадете на Document.Merge.Изхвърлянето на източник преди призива за сливане може да доведе до непълно дърво.

Често задавани въпроси

Мога ли да отворя защитен с парола PDF?

Да, използвай. Document.Open(data, password) или с други: Document.Open(path, password) да се посочи собственикът или паролата на потребителя като втори аргумент.

Различават ли се Document.ToArray ((() от запазването в MemoryStream?

Document.ToArray() е метод за удобство, който вътрешно спестява до MemoryStream И двете пътеки произвеждат идентичен PDF изход.

Какъв е типът на свойството Pages?

Document.Pages е от типа: PageCollection.Той е с индекс 1 .; doc.Pages[1] Това е първата страница.

Мога ли да запазя един документ няколко пъти?

Да, можете да се обадите. doc.Save() или с други: doc.ToArray() Всеки призив сериализира текущото състояние на документа.

Как да проверя дали документът е лицензиран?

Document.IsLicensed връща a bool за Aspose.PDF FOSS това е само информационно не се изисква активиране.

Вижте също:

 Български