Jak przekształcać strony PDF za pomocą IronPDF w języku C# | IronPDF

Przekształcanie stron PDF za pomocą IronPDF w C# i .NET

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF umożliwia programistom .NET przekształcanie stron PDF poprzez skalowanie i przesuwanie treści bez zmiany wymiarów strony. Użyj metody Transform z parametrami do poziomego/pionowego przesuwania i skalowania, aby programowo przemieszczać i zmieniać rozmiar zawartości strony.

Szybki start: Łatwa transformacja stron PDF

Dowiedz się, jak w prosty sposób przekształcać strony PDF za pomocą biblioteki IronPDF w środowisku .NET. Wystarczy kilka linii kodu, aby skalować i tłumaczyć zawartość strony bez wpływu na oryginalne wymiary strony. W niniejszym przewodniku pokazano, jak stosować transformacje w celu płynnego ulepszania dokumentów PDF.

  1. Install IronPDF with NuGet Package Manager

    PM > Install-Package IronPdf
  2. Skopiuj i uruchom ten fragment kodu.

    IronPdf.PdfDocument.FromFile("input.pdf")
      .Pages[0].Transform(50,50,0.8,0.8)
      .SaveAs("output-transformed.pdf");
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronPDF w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer


Jak przekształcić strony PDF w języku C#?

Metoda Transform może przesuwać i zmieniać rozmiar zawartości. Ma to wpływ wyłącznie na wygląd treści wyświetlanej na stronie i NIE zmienia fizycznych wymiarów strony. W przeciwieństwie do orientacji i obracania strony, które modyfikują całą strukturę strony, transformacje dostosowują jedynie pozycjonowanie treści. Wypróbujmy metodę Transform na przykładowym dokumencie PDF.

:path=/static-assets/pdf/content-code-examples/how-to/transform-pdf-pages-transform-pdf.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("basic.pdf");

pdf.Pages[0].Transform(50, 50, 0.8, 0.8);

pdf.SaveAs("transformPage.pdf");
Imports IronPdf

Dim pdf As PdfDocument = PdfDocument.FromFile("basic.pdf")

pdf.Pages(0).Transform(50, 50, 0.8, 0.8)

pdf.SaveAs("transformPage.pdf")
$vbLabelText   $csharpLabel

Metoda Transform jest szczególnie przydatna, gdy trzeba przemieścić zawartość po scaleniu wielu plików PDF lub podczas przygotowywania dokumentów na określone niestandardowe rozmiary papieru. Ta funkcja uzupełnia inne opcje formatowania, takie jak ustawianie niestandardowych marginesów, umożliwiając precyzyjne formatowanie dokumentów.

Jakie parametry akceptuje metoda Transform?

Metoda Transform akceptuje cztery kluczowe parametry kontrolujące pozycjonowanie i rozmiarowanie zawartości:

  • Przesuwanie w poziomie (TranslateX): Przesuwa treść w poziomie po stronie. Wartości dodatnie przesuwają treść w prawo, a wartości ujemne – w lewo. Jednostka miary jest zgodna ze standardami PDF (zazwyczaj są to punkty, gdzie 1 punkt = 1/72 cala).
  • Przesuw pionowy (TranslateY): Kontroluje pionowy ruch treści strony. Wartości dodatnie przesuwają treść w dół, a wartości ujemne – w górę. Jest to przydatne, gdy trzeba stworzyć miejsce na nagłówki i stopki.
  • Skala pozioma (ScaleX): Wartość dziesiętna, która zmienia rozmiar szerokości treści. Wartość 1,0 zachowuje oryginalny rozmiar, 0,5 zmniejsza szerokość o połowę, a 2,0 podwaja szerokość. Ten parametr pomaga dopasować treść do określonych granic bez wpływu na proporcje obrazu, gdy jest używany z dopasowaną skalą pionową.
  • Skala pionowa (ScaleY): Podobna do ScaleX, ale wpływa na wysokość. Zachowanie równych wartości ScaleX i ScaleY pozwala zachować oryginalne proporcje treści.

Oto zaawansowany przykład ilustrujący wiele przekształceń:

using IronPdf;
using System;

// Load an existing PDF or create a new one
PdfDocument pdf = PdfDocument.FromFile("invoice.pdf");

// Apply different transformations to multiple pages
for (int i = 0; i < pdf.Pages.Count; i++)
{
    if (i % 2 == 0)
    {
        // Even pages: Create margin space and reduce size slightly
        pdf.Pages[i].Transform(30, 30, 0.9, 0.9);
    }
    else
    {
        // Odd pages: Center content with larger margins
        pdf.Pages[i].Transform(40, 60, 0.85, 0.85);
    }
}

// Save the transformed document
pdf.SaveAs("invoice_transformed.pdf");

// You can also export to memory stream for web applications
var memoryStream = pdf.Stream;
using IronPdf;
using System;

// Load an existing PDF or create a new one
PdfDocument pdf = PdfDocument.FromFile("invoice.pdf");

// Apply different transformations to multiple pages
for (int i = 0; i < pdf.Pages.Count; i++)
{
    if (i % 2 == 0)
    {
        // Even pages: Create margin space and reduce size slightly
        pdf.Pages[i].Transform(30, 30, 0.9, 0.9);
    }
    else
    {
        // Odd pages: Center content with larger margins
        pdf.Pages[i].Transform(40, 60, 0.85, 0.85);
    }
}

// Save the transformed document
pdf.SaveAs("invoice_transformed.pdf");

// You can also export to memory stream for web applications
var memoryStream = pdf.Stream;
Imports IronPdf
Imports System

' Load an existing PDF or create a new one
Dim pdf As PdfDocument = PdfDocument.FromFile("invoice.pdf")

' Apply different transformations to multiple pages
For i As Integer = 0 To pdf.Pages.Count - 1
    If i Mod 2 = 0 Then
        ' Even pages: Create margin space and reduce size slightly
        pdf.Pages(i).Transform(30, 30, 0.9, 0.9)
    Else
        ' Odd pages: Center content with larger margins
        pdf.Pages(i).Transform(40, 60, 0.85, 0.85)
    End If
Next

' Save the transformed document
pdf.SaveAs("invoice_transformed.pdf")

' You can also export to memory stream for web applications
Dim memoryStream = pdf.Stream
$vbLabelText   $csharpLabel

Dlaczego miałbym potrzebować przekształcania stron PDF?

Przekształcanie stron PDF ma wiele praktycznych zastosowań w przetwarzaniu dokumentów:

1. Tworzenie dokumentów gotowych do druku: Przygotowując pliki PDF do profesjonalnego druku, często trzeba dostosować rozmieszczenie treści, aby uwzględnić obszary spadu, marginesy oprawy lub konkretne wymagania drukarki. Metoda Transform umożliwia precyzyjne pozycjonowanie bez konieczności odtwarzania dokumentu.

2. Wyrównanie pól formularza: Po utworzeniu lub edycji formularzy PDF może zaistnieć potrzeba zmiany położenia całych sekcji w celu dopasowania ich do wcześniej wydrukowanych materiałów piśmienniczych lub szablonów. Transformacja zapewnia, że wszystkie elementy formularza zachowują swoje względne pozycje.

3. Kompilacja wielu dokumentów: Podczas łączenia dokumentów z różnych źródeł każdy z nich może mieć inne ustawienia marginesów. Użycie Transform pomaga ujednolicić wygląd na wszystkich stronach, szczególnie przydatne podczas nakładania tekstu lub obrazów na scalone dokumenty.

4. Generowanie elastycznych PDF: W dynamicznych aplikacjach, gdzie pliki PDF są generowane na podstawie preferencji użytkownika lub specyfikacji urządzenia, Transform umożliwia dostosowania w czasie rzeczywistym, zapewniając optymalne wyświetlanie na różnych rozmiarach ekranów.

Przed i po przekształceniu pliku PDF pokazujące treść przeniesioną z układu całostronicowego do układu z nowym rozmieszczeniem

Najlepsze praktyki dotyczące konwersji plików PDF

Podczas wdrażania transformacji plików PDF należy wziąć pod uwagę następujące strategie optymalizacji:

Zachowanie proporcji: Zawsze używaj identycznych wartości ScaleX i ScaleY, chyba że wymagana jest celowa deformacja. Pozwala to zachować profesjonalny wygląd tekstu i obrazów.

Warunki brzegowe testów: Przed zastosowaniem transformacji należy sprawdzić, czy skalowana treść nie przekroczy granic strony. Oblicz efektywny obszar treści po transformacji, aby zapobiec przycięciu.

Wydajność przetwarzania wsadowego: Podczas przetwarzania wielu stron warto rozważyć użycie przetwarzania równoległego w przypadku dużych dokumentów:

using IronPdf;
using System.Linq;
using System.Threading.Tasks;

public async Task TransformLargeDocument(string filePath)
{
    PdfDocument pdf = PdfDocument.FromFile(filePath);

    // Process pages in parallel for better performance
    var tasks = pdf.Pages.Select((page, index) => 
        Task.Run(() => 
        {
            // Apply consistent transformation to all pages
            page.Transform(25, 25, 0.95, 0.95);
        })
    ).ToArray();

    await Task.WhenAll(tasks);

    // Save with optimized settings
    pdf.SaveAs("transformed_optimized.pdf");
}
using IronPdf;
using System.Linq;
using System.Threading.Tasks;

public async Task TransformLargeDocument(string filePath)
{
    PdfDocument pdf = PdfDocument.FromFile(filePath);

    // Process pages in parallel for better performance
    var tasks = pdf.Pages.Select((page, index) => 
        Task.Run(() => 
        {
            // Apply consistent transformation to all pages
            page.Transform(25, 25, 0.95, 0.95);
        })
    ).ToArray();

    await Task.WhenAll(tasks);

    // Save with optimized settings
    pdf.SaveAs("transformed_optimized.pdf");
}
Imports IronPdf
Imports System.Linq
Imports System.Threading.Tasks

Public Async Function TransformLargeDocument(filePath As String) As Task
    Dim pdf As PdfDocument = PdfDocument.FromFile(filePath)

    ' Process pages in parallel for better performance
    Dim tasks = pdf.Pages.Select(Function(page, index) _
        Task.Run(Sub()
                     ' Apply consistent transformation to all pages
                     page.Transform(25, 25, 0.95, 0.95)
                 End Sub)
    ).ToArray()

    Await Task.WhenAll(tasks)

    ' Save with optimized settings
    pdf.SaveAs("transformed_optimized.pdf")
End Function
$vbLabelText   $csharpLabel

Zarządzanie pamięcią: W przypadku dużych dokumentów warto rozważyć przetwarzanie ich w fragmentach i zapisywanie w strumieniach pamięci, aby zoptymalizować wykorzystanie zasobów w środowiskach serwerowych.

Typowe scenariusze transformacji

Oto praktyczne przykłady konkretnych przypadków użycia:

Tworzenie miniatur: Generuj podglądy stron PDF poprzez zmniejszenie skali treści przy zachowaniu czytelności:

// Create thumbnail-sized versions of pages
pdf.Pages[0].Transform(10, 10, 0.3, 0.3);
// Create thumbnail-sized versions of pages
pdf.Pages[0].Transform(10, 10, 0.3, 0.3);
' Create thumbnail-sized versions of pages
pdf.Pages(0).Transform(10, 10, 0.3, 0.3)
$vbLabelText   $csharpLabel

Dodawanie marginesów do oprawy: Przesuń treść, aby dostosować ją do oprawy spiralnej lub segregatorów z trzema ringami:

// Add 0.5 inch (36 points) binding margin on left
pdf.Pages[0].Transform(36, 0, 1.0, 1.0);
// Add 0.5 inch (36 points) binding margin on left
pdf.Pages[0].Transform(36, 0, 1.0, 1.0);
' Add 0.5 inch (36 points) binding margin on left
pdf.Pages(0).Transform(36, 0, 1.0, 1.0)
$vbLabelText   $csharpLabel

Wyrównanie do środka treści, która nie wypełnia strony: Gdy treść nie wypełnia strony, wyrównaj ją do środka w profesjonalny sposób:

// Calculate centering offset (assuming standard letter size)
double pageWidth = 612; // points
double contentWidth = 500; // estimated content width
double centerOffset = (pageWidth - contentWidth) / 2;

pdf.Pages[0].Transform(centerOffset, 50, 1.0, 1.0);
// Calculate centering offset (assuming standard letter size)
double pageWidth = 612; // points
double contentWidth = 500; // estimated content width
double centerOffset = (pageWidth - contentWidth) / 2;

pdf.Pages[0].Transform(centerOffset, 50, 1.0, 1.0);
' Calculate centering offset (assuming standard letter size)
Dim pageWidth As Double = 612 ' points
Dim contentWidth As Double = 500 ' estimated content width
Dim centerOffset As Double = (pageWidth - contentWidth) / 2

pdf.Pages(0).Transform(centerOffset, 50, 1.0, 1.0)
$vbLabelText   $csharpLabel

Metoda Transform integruje się bezproblemowo z szerokim zakresem funkcji IronPDF, pozwalając na tworzenie nowych plików PDF o precyzyjnych układach i modyfikację istniejących dokumentów w celu spełnienia określonych wymagań. Niezależnie od tego, czy tworzysz systemy do automatycznego przetwarzania dokumentów, czy też opracowujesz niestandardowe rozwiązania do raportowania, opanowanie transformacji plików PDF zwiększa Twoją zdolność do dostarczania profesjonalnych, precyzyjnie sformatowanych dokumentów.

Często Zadawane Pytania

How do I transform PDF pages programmatically in C#?

You can transform PDF pages using IronPDF's Transform method. This method allows you to scale and translate page content without modifying the actual page dimensions. Simply call the Transform method on a page with parameters for horizontal/vertical translation and scaling factors.

What parameters does the Transform method require?

The Transform method in IronPDF accepts four parameters: TranslateX (horizontal movement), TranslateY (vertical movement), ScaleX (horizontal scaling), and ScaleY (vertical scaling). Translation values are in points (1/72 inch), while scale values are decimal multipliers.

Can I move PDF content without changing the page size?

Yes, IronPDF's Transform method specifically moves and resizes content appearance without altering the physical page dimensions. This is different from page rotation or orientation changes, which modify the entire page structure.

How do I scale down PDF content to 80% of its original size?

To scale PDF content to 80% of its original size using IronPDF, use the Transform method with scale parameters set to 0.8. For example: Pages[0].Transform(0, 0, 0.8, 0.8) will scale both width and height to 80%.

Can I apply transformations to specific pages in a PDF?

Yes, IronPDF allows you to transform individual pages by accessing them through the Pages collection. You can apply different transformations to each page as needed, such as Pages[0].Transform() for the first page.

What's the difference between positive and negative translation values?

In IronPDF's Transform method, positive TranslateX values move content right while negative values move it left. For TranslateY, positive values move content downward and negative values shift it upward. This allows precise positioning in any direction.

When should I use PDF transformations instead of rotation?

Use IronPDF's Transform method when you need to reposition or resize content while keeping the page dimensions intact. This is ideal after merging PDFs, preparing documents for custom paper sizes, or creating space for headers and footers without altering the page structure.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 18,135,201 | Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronPdf
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.