C#에서 PDF 편집 — PDF 평면화 방법
IronPDF C#에서 단 한 줄의 코드로 PDF 문서를 평면화하여 대화형 폼 필드를 정적 콘텐츠로 변환함으로써 추가 수정을 방지하고 문서 무결성을 보장합니다.
PDF 문서에는 라디오 버튼, 체크박스, 텍스트 상자, 목록과 같은 입력 가능한 위젯이 포함된 대화형 양식이 자주 포함됩니다. 보안 또는 보관 목적으로 이러한 문서를 편집 불가능하게 만들려면 PDF 파일을 평면화해야 합니다. IronPDF 단 한 줄의 코드로 이 기능을 제공합니다. 이 기능은 비즈니스 애플리케이션, 법률 문서 또는 영구적인 문서 보존이 필요한 모든 상황에서 PDF 양식을 다룰 때 필수적입니다.
빠른 시작: 한 줄로 PDF를 평면화하기
IronPDF 사용하여 PDF 문서를 평면화하면 모든 상호 작용 요소가 제거되고 편집할 수 없는 영구적인 콘텐츠가 생성됩니다. 이 C# 한 줄짜리 코드는 기존 PDF 파일을 불러와서 모든 입력 가능한 위젯을 제거하고 보안 처리된 문서를 저장합니다.
최소 워크플로우(5단계)
- NuGet 패키지 관리자를 통해 IronPDF 설치하세요.
- 기존 PDF 파일을 불러오거나 HTML에서 새 PDF 파일을 생성하세요.
- `Flatten` 메서드를 호출합니다.
- 병합된 PDF 문서를 저장하세요
- 폼 필드가 제거되었는지 확인하세요
C#에서 PDF 문서를 평면화하는 방법은 무엇인가요?
IronPDF 설치하면 단 한 줄의 코드로 PDF 파일을 평면화할 수 있습니다. 이 프로세스는 HTML 파일 , HTML 문자열 또는 기존 PDF 문서에서 생성된 PDF와 함께 작동합니다.
아래 코드 예제는 PdfDocument 클래스를 사용하여 기존 PDF를 로드합니다. 동적 PDF 생성을 위해서는 ChromePdfRenderer 클래스를 사용하십시오. IronPDF의 Chrome 렌더링 엔진은 복잡한 양식을 평면화하기 전에 정확하게 렌더링합니다.
PDF 파일을 평면화하려면 Flatten 메소드를 호출하십시오. 이렇게 하면 라디오 버튼, 체크박스, 텍스트 필드를 포함한 모든 대화형 위젯이 제거되어 문서를 완전히 편집할 수 없게 됩니다.
:path=/static-assets/pdf/content-code-examples/how-to/pdf-image-flatten-csharp-flatten-pdf.cs
using IronPdf;
// Select the desired PDF File
PdfDocument pdf = PdfDocument.FromFile("before.pdf");
// Flatten the pdf
pdf.Flatten();
// Save as a new file
pdf.SaveAs("after_flatten.pdf");
using IronPdf;
// Select the desired PDF File
PdfDocument pdf = PdfDocument.FromFile("before.pdf");
// Flatten the pdf
pdf.Flatten();
// Save as a new file
pdf.SaveAs("after_flatten.pdf");
using IronPdf;
// Select the desired PDF File
PdfDocument pdf = PdfDocument.FromFile("before.pdf");
// Flatten the pdf
pdf.Flatten();
// Save as a new file
pdf.SaveAs("after_flatten.pdf");
Imports IronPdf
' Select the desired PDF File
Dim pdf As PdfDocument = PdfDocument.FromFile("before.pdf")
' Flatten the pdf
pdf.Flatten()
' Save as a new file
pdf.SaveAs("after_flatten.pdf")
복잡한 시나리오의 경우 특정 페이지를 평면화하거나 평면화하기 전에 폼 데이터를 조작할 수 있습니다.
using IronPdf;
// Load a PDF with fillable forms
PdfDocument pdf = PdfDocument.FromFile("form-document.pdf");
// Optionally, pre-fill form fields before flattening
pdf.Form.Fields[0].Value = "John Doe";
pdf.Form.Fields[1].Value = "john@example.com";
// Flatten only specific pages (pages 1-3)
pdf.FlattenPagesRange(0, 2);
// Or flatten the entire document
pdf.Flatten();
// Save the result
pdf.SaveAs("flattened-form.pdf");
using IronPdf;
// Load a PDF with fillable forms
PdfDocument pdf = PdfDocument.FromFile("form-document.pdf");
// Optionally, pre-fill form fields before flattening
pdf.Form.Fields[0].Value = "John Doe";
pdf.Form.Fields[1].Value = "john@example.com";
// Flatten only specific pages (pages 1-3)
pdf.FlattenPagesRange(0, 2);
// Or flatten the entire document
pdf.Flatten();
// Save the result
pdf.SaveAs("flattened-form.pdf");
Imports IronPdf
' Load a PDF with fillable forms
Dim pdf As PdfDocument = PdfDocument.FromFile("form-document.pdf")
' Optionally, pre-fill form fields before flattening
pdf.Form.Fields(0).Value = "John Doe"
pdf.Form.Fields(1).Value = "john@example.com"
' Flatten only specific pages (pages 1-3)
pdf.FlattenPagesRange(0, 2)
' Or flatten the entire document
pdf.Flatten()
' Save the result
pdf.SaveAs("flattened-form.pdf")
PDF 파일이 병합되었는지 어떻게 확인할 수 있나요?
아래 출력 결과는 변경 전과 후의 상태를 보여줍니다. 첫 번째 PDF 파일에는 편집 가능한 양식 필드가 포함되어 있습니다. IronPDF의 flatten 메서드를 적용하면 문서가 완전히 편집 불가능해집니다. 이 코드는 ASP.NET 애플리케이션 및 Blazor 서버를 포함한 모든 .NET 프로젝트에서 작동합니다.
Flatten 메소드를 사용한 후에는 감지할 수 없습니다.평면화가 성공적으로 완료되었는지 확인하려면 폼 필드 개수를 확인하세요.
using IronPdf;
// Load the flattened PDF
PdfDocument flattenedPdf = PdfDocument.FromFile("flattened.pdf");
// Check if any form fields exist
if (flattenedPdf.Form.Fields.Count == 0)
{
Console.WriteLine("PDF has been successfully flattened - no interactive fields remain.");
}
else
{
Console.WriteLine($"Warning: {flattenedPdf.Form.Fields.Count} form fields still exist.");
}
using IronPdf;
// Load the flattened PDF
PdfDocument flattenedPdf = PdfDocument.FromFile("flattened.pdf");
// Check if any form fields exist
if (flattenedPdf.Form.Fields.Count == 0)
{
Console.WriteLine("PDF has been successfully flattened - no interactive fields remain.");
}
else
{
Console.WriteLine($"Warning: {flattenedPdf.Form.Fields.Count} form fields still exist.");
}
Imports IronPdf
' Load the flattened PDF
Dim flattenedPdf As PdfDocument = PdfDocument.FromFile("flattened.pdf")
' Check if any form fields exist
If flattenedPdf.Form.Fields.Count = 0 Then
Console.WriteLine("PDF has been successfully flattened - no interactive fields remain.")
Else
Console.WriteLine($"Warning: {flattenedPdf.Form.Fields.Count} form fields still exist.")
End If
평면화 후 폼 필드는 어떻게 되나요?
PDF 문서를 병합하면 모든 대화형 양식 요소가 영구적으로 변형됩니다. 폼 필드는 정적 페이지 콘텐츠로 변환되어 문서의 시각적 레이어의 일부가 됩니다.
- 텍스트 입력 필드는 페이지의 일반 텍스트로 표시됩니다. 체크박스와 라디오 버튼은 선택 상태를 보여주는 정적 이미지로 표시됩니다.
- 드롭다운 메뉴에는 선택된 값만 일반 텍스트로 표시됩니다.
- 디지털 서명은 시각적으로는 보존되지만 암호화 유효성은 손실됩니다.
이 과정은 되돌릴 수 없습니다. 향후 편집이 필요한 경우 원본 대화형 PDF 파일의 사본을 보관하십시오. 보안과 편집 가능성이 모두 필요한 문서의 경우, PDF 병합 대신 PDF 권한 및 암호를 사용하십시오.
PDF 문서를 언제 병합해야 할까요?
PDF 평면화는 다음과 같은 비즈니스 시나리오에서 필수적입니다.
-
법률 문서 보관 : 계약서 및 합의서 서명 후 내용을 변경하지 않고 법적 효력을 유지하기 위해 문서를 평면화하십시오.
-
보고서 배포 : 변조를 방지하기 위해 계산 필드가 포함된 재무 보고서 및 데이터 시트를 배포 전에 평면화하십시오.
-
양식 제출 처리 : 사용자가 온라인 양식을 작성한 후 PDF를 병합하여 영구 기록을 생성합니다.
-
인쇄 최적화 : 평면화된 PDF는 프린터가 대화형 요소를 처리하지 않으므로 더욱 안정적으로 인쇄됩니다.
- 파일 크기 감소 : PDF 압축 시 폼 필드 데이터 구조를 제거하여 파일 크기를 줄일 수 있습니다.
다음은 작성된 여러 양식을 일괄 처리하여 보관하는 예시입니다.
using IronPdf;
using System.IO;
public class BatchPdfFlattener
{
public static void FlattenAllPdfsInDirectory(string sourceDir, string outputDir)
{
// Ensure output directory exists
Directory.CreateDirectory(outputDir);
// Get all PDF files in source directory
string[] pdfFiles = Directory.GetFiles(sourceDir, "*.pdf");
foreach (string pdfFile in pdfFiles)
{
try
{
// Load the PDF
PdfDocument pdf = PdfDocument.FromFile(pdfFile);
// Flatten the document
pdf.Flatten();
// Save to output directory with "_flattened" suffix
string fileName = Path.GetFileNameWithoutExtension(pdfFile);
string outputPath = Path.Combine(outputDir, $"{fileName}_flattened.pdf");
pdf.SaveAs(outputPath);
Console.WriteLine($"Flattened: {fileName}");
}
catch (Exception ex)
{
Console.WriteLine($"Error processing {pdfFile}: {ex.Message}");
}
}
}
}
using IronPdf;
using System.IO;
public class BatchPdfFlattener
{
public static void FlattenAllPdfsInDirectory(string sourceDir, string outputDir)
{
// Ensure output directory exists
Directory.CreateDirectory(outputDir);
// Get all PDF files in source directory
string[] pdfFiles = Directory.GetFiles(sourceDir, "*.pdf");
foreach (string pdfFile in pdfFiles)
{
try
{
// Load the PDF
PdfDocument pdf = PdfDocument.FromFile(pdfFile);
// Flatten the document
pdf.Flatten();
// Save to output directory with "_flattened" suffix
string fileName = Path.GetFileNameWithoutExtension(pdfFile);
string outputPath = Path.Combine(outputDir, $"{fileName}_flattened.pdf");
pdf.SaveAs(outputPath);
Console.WriteLine($"Flattened: {fileName}");
}
catch (Exception ex)
{
Console.WriteLine($"Error processing {pdfFile}: {ex.Message}");
}
}
}
}
Imports IronPdf
Imports System.IO
Public Class BatchPdfFlattener
Public Shared Sub FlattenAllPdfsInDirectory(sourceDir As String, outputDir As String)
' Ensure output directory exists
Directory.CreateDirectory(outputDir)
' Get all PDF files in source directory
Dim pdfFiles As String() = Directory.GetFiles(sourceDir, "*.pdf")
For Each pdfFile As String In pdfFiles
Try
' Load the PDF
Dim pdf As PdfDocument = PdfDocument.FromFile(pdfFile)
' Flatten the document
pdf.Flatten()
' Save to output directory with "_flattened" suffix
Dim fileName As String = Path.GetFileNameWithoutExtension(pdfFile)
Dim outputPath As String = Path.Combine(outputDir, $"{fileName}_flattened.pdf")
pdf.SaveAs(outputPath)
Console.WriteLine($"Flattened: {fileName}")
Catch ex As Exception
Console.WriteLine($"Error processing {pdfFile}: {ex.Message}")
End Try
Next
End Sub
End Class
PDF 병합 또는 분할과 같은 고급 PDF 조작 기술(플랫화 후 PDF 병합 또는 분할 포함)에 대해서는 IronPDF의 종합적인 설명서를 참조하십시오.
라이브러리 바로가기
PDF를 병합하고, 편집 및 조작하는 방법 등에 대한 자세한 내용은 설명서를 참조하십시오.
IronPDF 문서를 참조하십시오.당신이 할 수 있는 다른 일들을 알아볼 준비가 되셨나요? 추가 기능에 대한 자세한 내용 은 여기 튜토리얼 페이지를 참조하세요.
자주 묻는 질문
PDF를 평면화한다는 것은 무엇을 의미합니까?
PDF를 평면화하면 체크박스, 텍스트 상자, 라디오 버튼과 같은 모든 대화형 폼 필드가 편집 불가능한 정적인 콘텐츠로 변환됩니다. IronPDF는 문서의 무결성을 보장하고 추가 수정을 방지하기 위해 이러한 기능을 제공합니다.
C#에서 PDF를 평면화하는 방법은 무엇인가요?
IronPDF를 사용하면 단 한 줄의 코드로 PDF를 평면화할 수 있습니다. IronPdf.PdfDocument.FromFile("input.pdf").Flatten().SaveAs("flattened.pdf"). 이 코드는 PDF를 불러와 모든 대화형 요소를 제거하고 보안 문서를 저장합니다.
문서 전체가 아닌 특정 페이지만 병합할 수 있나요?
예, IronPDF에서는 FlattenPagesRange 메서드를 사용하여 특정 페이지를 병합할 수 있습니다. 예를 들어, pdf.FlattenPagesRange(0, 2)는 문서의 1~3페이지만 병합하고 나머지 페이지는 그대로 유지합니다.
어떤 유형의 폼 필드를 평면화할 수 있나요?
IronPDF는 라디오 버튼, 체크박스, 텍스트 필드, 드롭다운 목록 및 기타 입력 가능한 양식 요소를 포함한 모든 대화형 위젯을 평면화하여 영구적인 정적 콘텐츠로 변환할 수 있습니다.
PDF로 변환하기 전에 양식 필드를 채울 수 있나요?
예, IronPDF를 사용하면 평면화하기 전에 양식 필드를 미리 채울 수 있습니다. Flatten 메서드를 호출하기 전에 pdf.Form.Fields[0].Value = "John Doe"와 같이 값을 설정하여 완성되고 편집 불가능한 문서를 생성할 수 있습니다.
PDF 병합 과정에서 어떤 렌더링 엔진을 사용하나요?
IronPDF는 Chrome 렌더링 엔진을 사용하여 복잡한 양식을 병합하기 전에 정확하게 렌더링함으로써 전체 과정에서 문서의 시각적 무결성을 유지합니다.
PDF 문서를 평면화해야 하는 이유는 무엇인가요?
IronPDF를 사용하여 PDF를 평면화하는 것은 보안, 보관 목적, 법률 문서 또는 양식 데이터에 대한 추가 수정을 방지해야 하는 영구적인 문서 보존이 필요한 모든 시나리오에 필수적입니다.

