Jak zbudować konwerter .NET HTML do PDF
Jak przenosic strony PDF w C#: Zmiana kolejnosci i manipulacja stronami PDF używając IronPDF
Przenoszenie stron w dokumencie PDF (lub przenoszenie ich miedzy dwoma dokumentami) to czeste wymaganie przy organizacji raportow, tworzeniu miesiecznych biuletynow lub restrukturyzacji plików wielosekcyjnych przed dostarczeniem. Z IronPDF cała operacja zajmuje zaledwie kilka lini kodu C#.
Ten artykuł omawia cztery praktyczne scenariusze: przenoszenie pojedynczej strony na nowa pozycje w dokumencie, zmiana uporzadkowania wielu stron na raz, przenoszenie stron miedzy dwoma plikami PDF oraz zrozumienie typowych przypadkow użycia, ktore napedzaja te procesy. Kazdy scenariusz zawiera działajacy przykład kodu oraz obraz wyjsciowy pokazujacy wynik.
Rozpocznij bezplatna wersje próbna aby sledzic przykłady poniżej.
Jak rozpocząć pracę z IronPDF?
Dodaj IronPDF do dowolnego projektu .NET za pomoca konsoli Menedzera Pakietow NuGet lub .NET CLI. Pakiet jest przeznaczony dla .NET Standard 2.0 i działa na .NET Framework 4.6.2+, .NET Core oraz wszystkich nowoczesnych wersjach .NET, w tym .NET 8 i .NET 10.
dotnet add package IronPdf
Po instalacji, dodaj using IronPdf; na początku swojego pliku C#. Ważny klucz licencyjny odblokowuje pełne komercyjne użycie; bezplatna licencja próbna obejmuje ocene i rozwój. Ustaw klucz raz przed wywolaniem jakiegokolwiek API:
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Z pakietem jako odniesieniem i skonfigurowana licencja, kazdy przykład w tym artykułe będzie kompilowac sie i działać bez modyfikacji. Pakiet IronPDF NuGet automatycznie instaluje wszystkie wymagane zależności; nie sa potrzebne dodatkowe natywne pliki binarne ani konfiguracja podczas pracy na Windows, Linux lub macOS.
Jak przenieść pojedynczą stronę w dokumencie PDF?
Przeniesienie strony w dokumencie PDF za pomocą IronPDF obejmuje trzy kroki: skopiowanie docelowej strony, wstawienie jej na nową pozycję i następnie usunięcie oryginału. Klasa PdfDocument zapewnia CopyPage, InsertPdf i RemovePage do obsługi każdej części tej operacji.
Poniższy kod demonstruje przeniesienie ostatniej strony dokumentu na początek:
using IronPdf;
// Load the PDF document from the file system
var pdf = PdfDocument.FromFile("report.pdf");
// Get the zero-based index of the last page
int lastPageIndex = pdf.PageCount - 1;
// Copy the last page into a standalone PdfDocument
var pageToCopy = pdf.CopyPage(lastPageIndex);
// Insert the copied page at position 0 (the first page slot)
pdf.InsertPdf(pageToCopy, 0);
// The original last page has shifted down by one; remove it
pdf.RemovePage(lastPageIndex + 1);
// Save the reordered document to a new file
pdf.SaveAs("report-reorganized.pdf");
using IronPdf;
// Load the PDF document from the file system
var pdf = PdfDocument.FromFile("report.pdf");
// Get the zero-based index of the last page
int lastPageIndex = pdf.PageCount - 1;
// Copy the last page into a standalone PdfDocument
var pageToCopy = pdf.CopyPage(lastPageIndex);
// Insert the copied page at position 0 (the first page slot)
pdf.InsertPdf(pageToCopy, 0);
// The original last page has shifted down by one; remove it
pdf.RemovePage(lastPageIndex + 1);
// Save the reordered document to a new file
pdf.SaveAs("report-reorganized.pdf");
Imports IronPdf
' Load the PDF document from the file system
Dim pdf = PdfDocument.FromFile("report.pdf")
' Get the zero-based index of the last page
Dim lastPageIndex As Integer = pdf.PageCount - 1
' Copy the last page into a standalone PdfDocument
Dim pageToCopy = pdf.CopyPage(lastPageIndex)
' Insert the copied page at position 0 (the first page slot)
pdf.InsertPdf(pageToCopy, 0)
' The original last page has shifted down by one; remove it
pdf.RemovePage(lastPageIndex + 1)
' Save the reordered document to a new file
pdf.SaveAs("report-reorganized.pdf")
Przearanżowany Wyjścia PDF
Jak przenosic strony PDF w C#: Zdjęcie 2 - Zmieniony układ PDF z ostatnią stroną przeniesioną na początek
Kod ładuje plik PDF i wywołuje CopyPage, aby wyciągnąć ostatnią stronę według jej indeksu opartego na zerze. IronPDF używa indeksowania stron zaczynając od zera w całym swoim API, więc pierwsza strona ma indeks 0, a ostatnia PageCount - 1. Po wstawieniu kopii na pozycję 0, oryginalna strona przesuwa się o jedno miejsce w dół w sekwencji indeksów; wywołanie usuwania uwzględnia to, celując w lastPageIndex + 1 zamiast lastPageIndex. Przekazanie indeksu spoza zakresu rzuca ArgumentOutOfRangeException, więc zawsze należy sprawdzić liczbę stron przed działaniem na pozycjach brzegowych.
Aby bliżej przyjrzeć się indywidualnym operacjom kopiowania i usuwania, Add, Copy & Delete PDF Pages guide opisuje każdą metodę szczegółowo.
Jak indeksowanie stron oparte na zerze wpływa na etap usuwania?
Ponieważ wstawienie przesuwa wszystkie kolejno numerowane strony o jeden, oryginalna strona kończy się o jeden punkt dalej niż oczekiwano po operacji kopiowanie-wstaw. Schemat pdf.RemovePage(lastPageIndex + 1) wychwytuje tę zmianę. Zasada ta odnosi się również do przenoszenia stron ze środka dokumentu: każda strona pierwotnie na indeksie N, która znajdzie się po punkcie wstawienia, będzie na indeksie N+1 po wstawieniu kopii przed nią.
Weryfikacja obliczeń indeksu przed zapisaniem zapobiega cichym błędom kolejności, szczególnie w przebiegach masowych, gdzie dokumenty różnią się długością. Szybka kontrola przeciwko pdf.PageCount przed każdą operacją utrzymuje logikę poprawną bez względu na rozmiar dokumentu.
Jaki jest proces przenoszenia kilku stron naraz?
Gdy trzeba przenieść wiele stron, CopyPages wyciąga konkretny zestaw stron w pojedynczym wywołaniu. Metoda akceptuje listę indeksów stron opartych na zerze i zwraca nowy PdfDocument zawierający tylko te strony, w określonej kolejności. Takie podejście pasuje do scenariuszy takich jak przeniesienie ciągłego bloku stron z aneksu na koniec raportu lub przeniesienie zestawu stron ze streszczeniem na początek.
using IronPdf;
using System.Collections.Generic;
// Load the quarterly report
var pdf = PdfDocument.FromFile("quarterly-report.pdf");
// Copy pages at indexes 1 and 2 (the second and third pages)
var selectedPages = pdf.CopyPages(new List<int> { 1, 2 });
// Append the copied pages to the end of the original document
var result = PdfDocument.Merge(pdf, selectedPages);
// Remove the originals at their former positions (now indexes 1 and 2)
result.RemovePages(new List<int> { 1, 2 });
// Write the reordered result to a new path
result.SaveAs("quarterly-report-reordered.pdf");
using IronPdf;
using System.Collections.Generic;
// Load the quarterly report
var pdf = PdfDocument.FromFile("quarterly-report.pdf");
// Copy pages at indexes 1 and 2 (the second and third pages)
var selectedPages = pdf.CopyPages(new List<int> { 1, 2 });
// Append the copied pages to the end of the original document
var result = PdfDocument.Merge(pdf, selectedPages);
// Remove the originals at their former positions (now indexes 1 and 2)
result.RemovePages(new List<int> { 1, 2 });
// Write the reordered result to a new path
result.SaveAs("quarterly-report-reordered.pdf");
Imports IronPdf
Imports System.Collections.Generic
' Load the quarterly report
Dim pdf = PdfDocument.FromFile("quarterly-report.pdf")
' Copy pages at indexes 1 and 2 (the second and third pages)
Dim selectedPages = pdf.CopyPages(New List(Of Integer) From {1, 2})
' Append the copied pages to the end of the original document
Dim result = PdfDocument.Merge(pdf, selectedPages)
' Remove the originals at their former positions (now indexes 1 and 2)
result.RemovePages(New List(Of Integer) From {1, 2})
' Write the reordered result to a new path
result.SaveAs("quarterly-report-reordered.pdf")
Wiele stron Przearanżowane Wynik
Jak przenosic strony PDF w C#: Zdjęcie 3 - Raport kwartalny z przeniesionymi stronami 2 i 3 na koniec dokumentu
Kod kopiuje dwie strony z dokumentu źródłowego, łączy je na końcu przy użyciu PdfDocument.Merge, a następnie usuwa oryginały, aby zakończyć zmianę kolejności. Metoda Merge zwraca nowy obiekt PdfDocument, który łączy oba wejścia w sekwencji: oryginalny dokument, a następnie wyodrębnione strony. Usunięcie teraz zduplikowanych oryginałów pozostawia ostateczny dokument w pożądanej kolejności bez żadnej nadmiarowej treści.
Metoda RemovePages akceptuje listę indeksów opartych na zerze i usuwa wszystkie określone strony w jednym przejściu. Podczas usuwania wielu stron, przekaż wszystkie indeksy w jednym wywołaniu, zamiast wywoływać RemovePage w pętli, ponieważ każde indywidualne usunięcie przesuwa pozostałe indeksy i może spowodować błędy o jeden.
Merge or Split PDFs tutorial omawia dodatkowe strategie łączenia i dzielenia dokumentów, w tym dzielenie według zakresu stron.
Jak sobie poradzić z grupami stron nieciągłymi?
CopyPages akceptuje każdy IEnumerable<int>, więc strony nieciągłe są naturalnie obsługiwane. Przekaż new List<int> { 0, 3, 7 }, aby skopiować pierwszą, czwartą i ósmą stronę do jednego dokumentu w tej kolejności. Lista indeksów nie musi być posortowana, co daje pełną kontrolę nad sekwencją wyjściową. Ta elastyczność jest użyteczna przy tworzeniu niestandardowego dokumentu z określonych stron w długim pliku źródłowym, na przykład wyodrębniając tylko strony ze streszczeniem kierowniczym z raportu wielorozdziałowego.
Jeśli zamiarem jest całkowite przearanżowanie dokumentu, a nie przenoszenie podzbioru, stworzenie tablicy indeksów, która zawiera wszystkie pozycje stron w pożądanej kolejności i przekazanie jej do CopyPages, tworzy przearanżowany dokument w jednej operacji. Rearrange Pages in PDF C# tutorial szczegółowo omawia ten wzorzec przestonowania całego dokumentu.
Jak przenosić strony między dwoma plikami PDF?
Przenoszenie stron z jednego dokumentu PDF do drugiego postępuje według tego samego wzoru kopiowania-wstawiania, stosowanego na dwóch oddzielnych instancjach PdfDocument. To standardowe podejście podczas konsolidowania treści z wielu plików źródłowych: na przykład przenoszenie wybranych stron z zatwierdzeniami z wersji roboczej do ostatecznego dokumentu umowy.
using IronPdf;
// Load the source and destination documents
var sourceDoc = PdfDocument.FromFile("source-document.pdf");
var destinationDoc = PdfDocument.FromFile("destination-document.pdf");
// Extract the first page (index 0) from the source document
var pageToMove = sourceDoc.CopyPage(0);
// Insert the extracted page at position 2 in the destination (third page slot)
destinationDoc.InsertPdf(pageToMove, 2);
// Save the updated destination document
destinationDoc.SaveAs("destination-document-updated.pdf");
// Remove the transferred page from the source and save separately
sourceDoc.RemovePage(0);
sourceDoc.SaveAs("source-document-updated.pdf");
using IronPdf;
// Load the source and destination documents
var sourceDoc = PdfDocument.FromFile("source-document.pdf");
var destinationDoc = PdfDocument.FromFile("destination-document.pdf");
// Extract the first page (index 0) from the source document
var pageToMove = sourceDoc.CopyPage(0);
// Insert the extracted page at position 2 in the destination (third page slot)
destinationDoc.InsertPdf(pageToMove, 2);
// Save the updated destination document
destinationDoc.SaveAs("destination-document-updated.pdf");
// Remove the transferred page from the source and save separately
sourceDoc.RemovePage(0);
sourceDoc.SaveAs("source-document-updated.pdf");
Imports IronPdf
' Load the source and destination documents
Dim sourceDoc = PdfDocument.FromFile("source-document.pdf")
Dim destinationDoc = PdfDocument.FromFile("destination-document.pdf")
' Extract the first page (index 0) from the source document
Dim pageToMove = sourceDoc.CopyPage(0)
' Insert the extracted page at position 2 in the destination (third page slot)
destinationDoc.InsertPdf(pageToMove, 2)
' Save the updated destination document
destinationDoc.SaveAs("destination-document-updated.pdf")
' Remove the transferred page from the source and save separately
sourceDoc.RemovePage(0)
sourceDoc.SaveAs("source-document-updated.pdf")
Wynik transferu między dokumentami
Jak przenosic strony PDF w C#: Zdjęcie 4 - Dokument docelowy po otrzymaniu strony z dokumentu źródłowego
Kod ładuje dwa dokumenty niezależnie, kopiuje stronę z zasobu przy użyciu CopyPage i wstawia ją do docelowego na określonym indeksie przy użyciu InsertPdf. Źródło i cel są zapisywane jako oddzielne pliki w różnych ścieżkach, więc żaden z nich nie nadpisuje drugiego podczas operacji. Zapisanie dokumentu docelowego jako pierwszego, a zasobu jako drugiego jest bezpieczne, ponieważ CopyPage produkuje niezależną kopię; dokument zasobowy nie jest modyfikowany aż do momentu wywołania RemovePage.
Oba wywołania SaveAs zapisują do systemu plików, ale IronPDF obsługuje również przepływy pracy w pamięci przez metody wyjściowe BinaryData i Stream na PdfDocument. To jest przydatne w aplikacjach webowych, gdzie zmodyfikowany PDF musi być zwrócony jako odpowiedź HTTP, bez zapisywania na dysku. Transform PDF Pages guide opisuje dodatkowe wzorce manipulacji w pamięci.
Jak zachowujesz zakładki i adnotacje podczas przenoszenia stron?
Gdy strona jest kopiowana za pomocą CopyPage, IronPDF zachowuje wizualną zawartość strony, w tym tekst, obrazy, pola formularzy i właściwości renderowania. Zakładki (bookmarks) które odnoszą się tylko do przeniesionej strony podróżują z kopią, ale hierarchie zakładek krzyżowych odnoszących się do wielu stron nie są automatycznie aktualizowane. Dla dokumentów z złożonymi drzewami zakładek, przejrzyj wynik w czytniku PDF po przeniesieniu stron, aby upewnić się, że wewnętrzne linki nawigacyjne wskazują na właściwe miejsca docelowe.
Adnotacje i dane w polach formularzy osadzone bezpośrednio na warstwie strony są zachowane przez operację kopiuj. Jeśli dokument źródłowy używa nazwanych miejsc docelowych dla wewnętrznych linków, te miejsca docelowe zachowują swoje nazwy w skopiowanej stronie, ale linki w innych częściach dokumentu docelowego nie rozwiążą ich, chyba że nazwane miejsca docelowe są zarejestrowane w katalogu dokumentu docelowego.
Jakie są typowe przypadki użycia do reorganizacji stron PDF?
Deweloperzy muszą przenosić i przearanżować strony PDF w szerokim zakresie praktycznych scenariuszy. Model strony PDF zdefiniowany w specyfikacji PDF reprezentuje każdą stronę jako niezależny obiekt w drzewie stron dokumentu, co sprawia, że operacje kopiuj-wstaw-usuń na pojedynczych stronach są zawsze ważne niezależnie od długości dokumentu. Zrozumienie wzorców pomaga przy projektowaniu pipelines przetwarzania dokumentów, które obsługują zróżnicowane struktury wejścia.
| Scenariusz | Typowa operacja | Metody IronPDF |
|---|---|---|
| Tworzenie miesięcznego biuletynu | Przenieś stronę okładkową lub spis treści na początek | CopyPage, InsertPdf, RemovePage |
| Generowanie raportów | Przełącz strony streszczenia lub wstaw dzielniki sekcji | CopyPages, Merge, RemovePages |
| Konsolidacja dokumentów | Pobierz wybrane strony z wielu plików źródłowych do jednego wyjścia | CopyPage, InsertPdf, SaveAs |
| Reorganizacja archiwum | Przearanżuj strony chronologiczne lub kategorie dla plików referencyjnych | CopyPages, Merge, RemovePages |
| Przygotowanie umowy | Przenieś strony zatwierdzeń lub podpisów na wymaganą pozycję | CopyPage, InsertPdf, RemovePage |
Poza manipulacją stronami, IronPDF obsługuje pełen zakres operacji dokumentu w tym samym przepływie. Dodawanie nagłówków i stopek, stosowanie znaków wodnych i dodawanie podpisów cyfrowych są dostępne przez to samo API PdfDocument, więc można łączyć wiele transformacji przed ostatecznym zapisaniem. Strona z funkcjami IronPDF zapewnia przegląd wszystkich dostępnych możliwości.
Dla scenariuszy automatyzacji, gdzie pozycje stron są wyznaczane przez treść dokumentu (na przykład, wstawianie strony zatwierdzenia po odnalezieniu określonej sekcji), Edit PDF Files tutorial obejmuje wyszukiwanie tekstu i techniki manipulacji oparte na treści, które mogą być połączone z porządkowaniem stron.
Jak radzisz sobie z wydajnością przy przenoszeniu stron w dużych dokumentach?
Manipulacja stronami w IronPDF działa na reprezentacji dokumentu w pamięci, więc wydajność skaluje się z wielkością dokumentu i liczbą zastosowanych operacji. Dla dużych PDFów kilka wzorców pomaga utrzymać efektywne przetwarzanie.
Praca z minimalną niezbędną liczbą stron zmniejsza zużycie pamięci. Zamiast ładowac dokumentu 500-stronicowego w celu przeniesienia dwóch stron, podziel dokument na sekcje najpierw za pomocą CopyPages, wykonaj przestawienie na mniejszym zestawie, a następnie złóż go ponownie za pomocą Merge. Przykład Split PDF Pages demonstruje ten wzorzec dekonstrukcja-i-składanie.
Dla przepływów przetwarzania wsadowego, które przenoszą strony przez wiele dokumentów, usuń instancje PdfDocument po każdym zapisaniu, aby szybko zwolnić pamięć. PdfDocument implementuje IDisposable, więc opakowanie każdej instancji w oświadczenie using zapewnia deterministyczne czyszczenie nawet wtedy, gdy występują wyjątki w środku przepływu.
using IronPdf;
// Use 'using' declarations to ensure deterministic disposal
using var source = PdfDocument.FromFile("source-large.pdf");
using var destination = PdfDocument.FromFile("destination-large.pdf");
var pageToTransfer = source.CopyPage(0);
destination.InsertPdf(pageToTransfer, 0);
destination.SaveAs("destination-updated.pdf");
source.RemovePage(0);
source.SaveAs("source-updated.pdf");
using IronPdf;
// Use 'using' declarations to ensure deterministic disposal
using var source = PdfDocument.FromFile("source-large.pdf");
using var destination = PdfDocument.FromFile("destination-large.pdf");
var pageToTransfer = source.CopyPage(0);
destination.InsertPdf(pageToTransfer, 0);
destination.SaveAs("destination-updated.pdf");
source.RemovePage(0);
source.SaveAs("source-updated.pdf");
Imports IronPdf
' Use 'Using' blocks to ensure deterministic disposal
Using source = PdfDocument.FromFile("source-large.pdf")
Using destination = PdfDocument.FromFile("destination-large.pdf")
Dim pageToTransfer = source.CopyPage(0)
destination.InsertPdf(pageToTransfer, 0)
destination.SaveAs("destination-updated.pdf")
source.RemovePage(0)
source.SaveAs("source-updated.pdf")
End Using
End Using
Deklaracje using tutaj zapewniają, że oba obiekty PdfDocument są usunięte po zakończeniu wywołań SaveAs, natychmiast zwalniając podstawowe bufory pamięci. Ten wzorzec jest szczególnie ważny w aplikacjach ASP.NET Core, gdzie wiele żądań może przetwarzać dokumenty jednocześnie na tym samym serwerze. Dla dodatkowych szczegółow dotyczących API w zakresie bezpiecznego użycia pamięci do obsługi dokumentów, skonsultuj się z IronPDF API Reference.
Jakie są Twoje kolejne kroki?
Przenoszenie i przestawianie stron PDF w C# wymaga trzech metod IronPDF: CopyPage, InsertPdf i RemovePage, zastosowanych w sekwencji kopiowania-wstawiania-usuwania. Ten sam wzorzec skaluje się od przenoszenia pojedynczej strony w jednym dokumencie do przenoszenia grup stron między różnymi plikami. IronPDF działa również w VB.NET z tym samym API, a metody manipulacji stronami są dostępne na wszystkich obsługiwanych platformach .NET, w tym .NET 8 i .NET 10.
Aby zbadać powiązane możliwości, Add, Copy & Delete PDF Pages guide obejmuje każdą metodę na poziomie stron szczegółowo. Dla pełnej reorganizacji dokumentu przy użyciu tabeli indeksu stron, Rearrange Pages in PDF C# article omawia to podejście.
Gotowy do dodania manipulacji stron PDF do swojego projektu? Rozpocznij bezpłatną wersję próbną, aby uzyskać dostęp do wszystkich funkcji IronPDF podczas rozwijania, lub kup licencję, aby wdrożyć na produkcji już dziś.
Często Zadawane Pytania
Jak przenieść stronę w inne miejsce w pliku PDF za pomocą języka C#?
Należy zastosować trzyetapowy schemat IronPDF: wywołać CopyPage(pageIndex) w celu wyodrębnienia strony, wywołać InsertPdf(copiedPage, targetIndex) w celu umieszczenia jej w nowej pozycji, a następnie wywołać RemovePage(originalIndex + 1) w celu usunięcia oryginału (dodając 1, aby uwzględnić przesunięcie indeksu spowodowane wstawieniem).
Jak przenieść wiele stron jednocześnie w IronPDF?
Wywołaj CopyPages(new List<int> { 1, 2 }), aby wyodrębnić określone strony według indeksu, a następnie użyj PdfDocument.Merge(original, copiedPages), aby je dołączyć, oraz RemovePages(new List<int> { 1, 2 }), aby usunąć oryginały z ich poprzednich pozycji.
Jak przenieść stronę z jednego pliku PDF do drugiego w języku C#?
Załaduj oba dokumenty za pomocą PdfDocument.FromFile, wywołaj CopyPage(index) na dokumencie źródłowym, wywołaj InsertPdf(page, position) na dokumencie docelowym, a następnie zapisz każdy z nich za pomocą SaveAs. Opcjonalnie usuń przeniesioną stronę ze źródła za pomocą RemovePage.
Dlaczego usunięcie strony wymaga dodania 1 do pierwotnego indeksu po wstawieniu?
Gdy strona jest wstawiana w miejscu poprzedzającym indeks oryginalnej strony, każda kolejna strona przesuwa się o jedną w górę. Jeśli oryginalna strona znajdowała się pod indeksem N, a wstawiłeś stronę przed nią, oryginalna strona znajduje się teraz pod indeksem N+1. Zawsze uwzględniaj to przesunięcie podczas wywoływania funkcji RemovePage po InsertPdf.
Czy IronPDF wykorzystuje indeksowanie stron od zera?
Tak. IronPDF stosuje indeksowanie od zera w całym swoim API. Pierwsza strona ma indeks 0, druga 1 i tak dalej. Indeks ostatniej strony to PdfDocument.PageCount - 1. Przekazanie indeksu poza ten zakres powoduje wygenerowanie wyjątku ArgumentOutOfRangeException.
Czy za pomocą IronPDF można przenosić nieprzylegające strony?
Tak. Metoda CopyPages akceptuje dowolny obiekt typu IEnumerable<int>, więc można przekazać nieprzylegające indeksy, takie jak new List<int> { 0, 3, 7 }. Strony są zwracane w podanej kolejności, a nie w kolejności dokumentu.
Czy podczas przenoszenia stron za pomocą IronPDF zachowane są zakładki i adnotacje?
Treści wizualne na poziomie strony (tekst, obrazy, pola formularzy) są zachowywane podczas korzystania z funkcji CopyPage. Zakładki odwołujące się wyłącznie do przeniesionej strony są przenoszone wraz z kopią. Hierarchie zakładek między dokumentami, odwołujące się do wielu stron, nie są automatycznie aktualizowane, dlatego po przeniesieniu stron należy sprawdzić linki nawigacyjne w pliku wyjściowym.
Jak prawidłowo usuwać obiekty PdfDocument w potoku przetwarzania wsadowego?
Należy używać deklaracji using var pdf = PDFDocument.FromFile(path);, aby zapewnić deterministyczne zwolnienie pamięci po zakończeniu wywołania SaveAs. Powoduje to natychmiastowe zwolnienie buforów w pamięci zamiast oczekiwania na zbieranie śmieći, co ma kluczowe znaczenie w aplikacjach .NET Core o dużej przepustowości.

