Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
PDF/A-1a 또는 PDF/A-1b 호환성을 위해 PDF 문서를 유효성 검사하려면 Document 클래스의 Validate 메서드를 사용하십시오. 이 메서드는 결과를 저장할 파일의 이름과 필요한 유효성 검사 유형 PdfFormat 열거형: PDF_A_1A 또는 PDF_A_1B를 지정할 수 있습니다.
다음 코드 조각은 Aspose.PDF.Drawing 라이브러리와 함께 작동합니다.
다음 코드 조각은 PDF/A-1A에 대한 PDF 문서를 유효성 검사하는 방법을 보여줍니다.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ValidateToPdfA1aStandard()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "ValidatePDFAStandard.pdf"))
{
// Validate PDF for PDF/A-1a
document.Validate(dataDir + "validation-result-A1A.xml", Aspose.Pdf.PdfFormat.PDF_A_1A);
}
}
다음 코드 조각은 PDF/A-1b에 대한 PDF 문서를 유효성 검사하는 방법을 보여줍니다.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ValidateToPdfA1bStandard()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "ValidatePDFAStandard.pdf"))
{
// Validate PDF for PDF/A-1b
document.Validate(dataDir + "validation-result-A1B.xml", Aspose.Pdf.PdfFormat.PDF_A_1B);
}
}
Aspose.PDF API를 사용하면 PDF를 생성할 때 또는 기존 파일에 목차를 추가할 수 있습니다. Aspose.Pdf.Generator 네임스페이스의 ListSection 클래스는 PDF를 처음부터 생성할 때 목차를 만들 수 있게 해줍니다. TOC의 요소인 제목을 추가하려면 Aspose.Pdf.Generator.Heading 클래스를 사용하십시오.
기존 PDF 파일에 TOC를 추가하려면 Aspose.PDF 네임스페이스의 Heading 클래스를 사용하십시오. Aspose.Pdf 네임스페이스는 새 PDF를 생성하고 기존 PDF 파일을 조작할 수 있습니다. 기존 PDF 파일 내에 목차를 생성하는 방법은 다음 코드 조각을 참조하십시오.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void AddTOCToPdf()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "AddTOC.pdf"))
{
// Get access to the first page of PDF file
var tocPage = document.Pages.Insert(1);
// Create an object to represent TOC information
var tocInfo = new Aspose.Pdf.TocInfo();
var title = new Aspose.Pdf.Text.TextFragment("Table Of Contents");
title.TextState.FontSize = 20;
title.TextState.FontStyle = Aspose.Pdf.Text.FontStyles.Bold;
// Set the title for TOC
tocInfo.Title = title;
tocPage.TocInfo = tocInfo;
// Create string objects which will be used as TOC elements
string[] titles = { "First page", "Second page", "Third page", "Fourth page" };
for (int i = 0; i < 2; i++)
{
// Create Heading object
var heading = new Aspose.Pdf.Heading(1);
var segment = new Aspose.Pdf.Text.TextSegment();
heading.TocPage = tocPage;
heading.Segments.Add(segment);
// Specify the destination page for the heading object
heading.DestinationPage = document.Pages[i + 2];
// Destination page
heading.Top = document.Pages[i + 2].Rect.Height;
// Destination coordinate
segment.Text = titles[i];
// Add heading to the page containing TOC
tocPage.Paragraphs.Add(heading);
}
// Save PDF document
document.Save(dataDir + "TOC_out.pdf");
}
}
Aspose.PDF는 또한 다른 TOC 수준에 대해 다른 TabLeaderType을 설정할 수 있습니다. FormatArray의 LineDash 속성을 TabLeaderType 열거형의 적절한 값으로 설정해야 합니다.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void CreateTocWithCustomFormatting()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Add a TOC page
var tocPage = document.Pages.Add();
// Create TOC information
var tocInfo = new Aspose.Pdf.TocInfo();
// Set LeaderType
tocInfo.LineDash = Aspose.Pdf.Text.TabLeaderType.Solid;
// Set the title for TOC
var title = new Aspose.Pdf.Text.TextFragment("Table Of Contents");
title.TextState.FontSize = 30;
tocInfo.Title = title;
// Add the TOC section to the document
tocPage.TocInfo = tocInfo;
// Define the format of the four levels list by setting the left margins
// and text format settings of each level
tocInfo.FormatArrayLength = 4;
// Level 1
tocInfo.FormatArray[0].Margin.Left = 0;
tocInfo.FormatArray[0].Margin.Right = 30;
tocInfo.FormatArray[0].LineDash = Aspose.Pdf.Text.TabLeaderType.Dot;
tocInfo.FormatArray[0].TextState.FontStyle = Aspose.Pdf.Text.FontStyles.Bold | Aspose.Pdf.Text.FontStyles.Italic;
// Level 2
tocInfo.FormatArray[1].Margin.Left = 10;
tocInfo.FormatArray[1].Margin.Right = 30;
tocInfo.FormatArray[1].LineDash = Aspose.Pdf.Text.TabLeaderType.None;
tocInfo.FormatArray[1].TextState.FontSize = 10;
// Level 3
tocInfo.FormatArray[2].Margin.Left = 20;
tocInfo.FormatArray[2].Margin.Right = 30;
tocInfo.FormatArray[2].TextState.FontStyle = Aspose.Pdf.Text.FontStyles.Bold;
// Level 4
tocInfo.FormatArray[3].LineDash = Aspose.Pdf.Text.TabLeaderType.Solid;
tocInfo.FormatArray[3].Margin.Left = 30;
tocInfo.FormatArray[3].Margin.Right = 30;
tocInfo.FormatArray[3].TextState.FontStyle = Aspose.Pdf.Text.FontStyles.Bold;
// Create a section in the Pdf document
var page = document.Pages.Add();
// Add four headings in the section
for (int level = 1; level <= 4; level++)
{
var heading = new Aspose.Pdf.Heading(level);
var segment = new Aspose.Pdf.Text.TextSegment();
heading.Segments.Add(segment);
heading.IsAutoSequence = true;
heading.TocPage = tocPage;
segment.Text = "Sample Heading " + level;
heading.TextState.Font = Aspose.Pdf.Text.FontRepository.FindFont("Arial Unicode MS");
// Add the heading into Table Of Contents.
heading.IsInList = true;
page.Paragraphs.Add(heading);
}
// Save PDF document
document.Save(dataDir + "TOC_out.pdf");
}
}
TOC에서 제목과 함께 페이지 번호를 표시하고 싶지 않은 경우 TOCInfo 클래스의 IsShowPageNumbers 속성을 false로 설정할 수 있습니다. TOC에서 페이지 번호를 숨기기 위한 다음 코드 조각을 확인하십시오:
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void CreateTocWithHiddenPageNumbers()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Add a TOC page
var tocPage = document.Pages.Add();
// Create TOC information
var tocInfo = new Aspose.Pdf.TocInfo();
// Set the title for TOC
var title = new Aspose.Pdf.Text.TextFragment("Table Of Contents");
title.TextState.FontSize = 20;
title.TextState.FontStyle = Aspose.Pdf.Text.FontStyles.Bold;
tocInfo.Title = title;
// Add the TOC section to the document
tocPage.TocInfo = tocInfo;
// Hide page numbers in TOC
tocInfo.IsShowPageNumbers = false;
// Define the format of the four levels list by setting the left margins and
// text format settings of each level
tocInfo.FormatArrayLength = 4;
// Level 1
tocInfo.FormatArray[0].Margin.Right = 0;
tocInfo.FormatArray[0].TextState.FontStyle = Aspose.Pdf.Text.FontStyles.Bold | Aspose.Pdf.Text.FontStyles.Italic;
// Level 2
tocInfo.FormatArray[1].Margin.Left = 30;
tocInfo.FormatArray[1].TextState.Underline = true;
tocInfo.FormatArray[1].TextState.FontSize = 10;
// Level 3
tocInfo.FormatArray[2].TextState.FontStyle = Aspose.Pdf.Text.FontStyles.Bold;
// Level 4
tocInfo.FormatArray[3].TextState.FontStyle = Aspose.Pdf.Text.FontStyles.Bold;
// Create a section in the Pdf document
var page = document.Pages.Add();
// Add four headings in the section
for (int level = 1; level <= 4; level++)
{
var heading = new Aspose.Pdf.Heading(level);
var segment = new Aspose.Pdf.Text.TextSegment();
heading.TocPage = tocPage;
heading.Segments.Add(segment);
heading.IsAutoSequence = true;
segment.Text = "this is heading of level " + level;
heading.IsInList = true;
page.Paragraphs.Add(heading);
}
// Save PDF document
document.Save(dataDir + "TOC_out.pdf");
}
}
PDF 문서에 TOC를 추가할 때 TOC의 페이지 번호를 사용자 정의하는 것이 일반적입니다. 예를 들어, 페이지 번호 앞에 P1, P2, P3와 같은 접두사를 추가해야 할 수 있습니다. 이 경우, Aspose.PDF for .NET은 TocInfo 클래스의 PageNumbersPrefix 속성을 제공하여 페이지 번호를 사용자 정의할 수 있습니다. 다음 코드 샘플을 참조하십시오.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void CustomizePageNumbersAddingToC()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "CustomizePageNumbersAddingToC.pdf"))
{
// Get access to first page of PDF file
Page tocPage = document.Pages.Insert(1);
// Create object to represent TOC information
var tocInfo = new Aspose.Pdf.TocInfo();
var title = new Aspose.Pdf.Text.TextFragment("Table Of Contents");
title.TextState.FontSize = 20;
title.TextState.FontStyle = Aspose.Pdf.Text.FontStyles.Bold;
// Set the title for TOC
tocInfo.Title = title;
tocInfo.PageNumbersPrefix = "P";
tocPage.TocInfo = tocInfo;
// Loop through the pages to create TOC entries
for (int i = 1; i < document.Pages.Count; i++)
{
// Create Heading object
var heading2 = new Aspose.Pdf.Heading(1);
var segment2 = new Aspose.Pdf.Text.TextSegment();
heading2.TocPage = tocPage;
heading2.Segments.Add(segment2);
// Specify the destination page for heading object
heading2.DestinationPage = document.Pages[i + 1];
// Destination page
heading2.Top = document.Pages[i + 1].Rect.Height;
// Destination coordinate
segment2.Text = "Page " + i.ToString();
// Add heading to page containing TOC
tocPage.Paragraphs.Add(heading2);
}
// Save PDF document
document.Save(dataDir + "CustomizePageNumbersAddingToC_out.pdf");
}
}
PDF 파일에 대한 액세스 권한을 적용하여 특정 사용자 그룹이 PDF 문서의 특정 기능/객체에 액세스할 수 있도록 합니다. PDF 파일 액세스를 제한하기 위해 일반적으로 암호화를 적용하며, 문서를 액세스/보기하는 사용자가 PDF 파일 만료에 대한 유효한 알림을 받도록 PDF 파일 만료 날짜를 설정해야 할 수 있습니다.
위의 요구 사항을 달성하기 위해 JavascriptAction 객체를 사용할 수 있습니다. 다음 코드 조각을 참조하십시오.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void SetExpiryDate()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();
// Create PDF document
using (var document = new Aspose.Pdf.Document())
{
// Add page
var page = document.Pages.Add();
// Add text fragment to paragraphs collection of page object
page.Paragraphs.Add(new Aspose.Pdf.Text.TextFragment("Hello World..."));
// Create JavaScript object to set PDF expiry date
var javaScript = new Aspose.Pdf.Annotations.JavascriptAction(
"var year=2017;" +
"var month=5;" +
"today = new Date(); today = new Date(today.getFullYear(), today.getMonth());" +
"expiry = new Date(year, month);" +
"if (today.getTime() > expiry.getTime())" +
"app.alert('The file is expired. You need a new one.');"
);
// Set JavaScript as PDF open action
document.OpenAction = javaScript;
// Save PDF Document
document.Save(dataDir + "SetExpiryDate_out.pdf");
}
}
고객이 PDF 파일 생성 진행 상황을 확인할 수 있는 기능을 추가해 달라고 요청했습니다. 이에 대한 응답은 다음과 같습니다.
DocSaveOptions 클래스의 CustomerProgressHandler 필드를 사용하면 PDF 생성 진행 상황을 확인할 수 있습니다. 핸들러는 다음과 같은 유형을 가집니다:
아래 코드 조각은 CustomerProgressHandler를 사용하는 방법을 보여줍니다.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void DetermineProgress()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "AddTOC.pdf"))
{
// Create DocSaveOptions instance and set custom progress handler
var saveOptions = new Aspose.Pdf.DocSaveOptions();
saveOptions.CustomProgressHandler = new Aspose.Pdf.UnifiedSaveOptions.ConversionProgressEventHandler(ShowProgressOnConsole);
// Save PDF Document
document.Save(dataDir + "DetermineProgress_out.pdf", saveOptions);
}
}
// Method to handle progress and display it on the console
private static void ShowProgressOnConsole(Aspose.Pdf.UnifiedSaveOptions.ProgressEventHandlerInfo eventInfo)
{
switch (eventInfo.EventType)
{
case Aspose.Pdf.ProgressEventType.TotalProgress:
Console.WriteLine(String.Format("{0} - Conversion progress : {1}% .", DateTime.Now.ToLongTimeString(), eventInfo.Value.ToString()));
break;
case Aspose.Pdf.ProgressEventType.SourcePageAnalysed:
Console.WriteLine(String.Format("{0} - Source page {1} of {2} analyzed.", DateTime.Now.ToLongTimeString(), eventInfo.Value.ToString(), eventInfo.MaxValue.ToString()));
break;
case Aspose.Pdf.ProgressEventType.ResultPageCreated:
Console.WriteLine(String.Format("{0} - Result page's {1} of {2} layout created.", DateTime.Now.ToLongTimeString(), eventInfo.Value.ToString(), eventInfo.MaxValue.ToString()));
break;
case Aspose.Pdf.ProgressEventType.ResultPageSaved:
Console.WriteLine(String.Format("{0} - Result page {1} of {2} exported.", DateTime.Now.ToLongTimeString(), eventInfo.Value.ToString(), eventInfo.MaxValue.ToString()));
break;
default:
break;
}
}
PDF 문서에는 종종 라디오 버튼, 체크박스, 텍스트 상자, 목록 등과 같은 대화형 작성 가능한 위젯이 포함된 양식이 포함됩니다. 다양한 응용 프로그램 목적을 위해 편집할 수 없도록 PDF 파일을 평탄화해야 합니다. Aspose.PDF는 몇 줄의 코드로 C#에서 PDF를 평탄화하는 기능을 제공합니다:
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void FlattenForms()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_WorkingDocuments();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "input.pdf"))
{
// Flatten Fillable PDF
if (document.Form.Fields.Count() > 0)
{
foreach (var item in document.Form.Fields)
{
item.Flatten();
}
}
// Save PDF document
document.Save(dataDir + "FlattenForms_out.pdf");
}
}
문서가 증분 업데이트되었는지 확인하려면 Document 클래스의 HasIncrementalUpdate
메서드를 사용하십시오. 이 메서드는 PDF 파일을 분석하고 증분 업데이트가 감지되었는지 여부를 나타내는 부울 값을 반환합니다. 매개변수가 없는 Save 메서드를 사용하여 문서를 저장하면 증분으로 저장됩니다.
다음 C# 코드는 HasIncrementalUpdate
메서드를 사용하는 방법을 보여줍니다:
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.