Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
在处理各种应用程序中的数据输入和输出操作时,操作 PDF 文档中的表单字段可能至关重要。Aspose.PDF 库提供了强大的功能,用于以 JSON 格式导出和导入表单字段。下面,我们将探讨几个代码片段,演示如何使用不同的方法执行这些任务。
自 24.7 版本以来,可以以 JSON 格式添加从表单导入和导出的数据:
此方法将现有 PDF 文档中的所有表单字段导出到 JSON 文件,并将其导入到新的 PDF 文档中。
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExportAllFieldsToJson(string inputPdfPath, string outputJsonPath, string outputPdfPath)
{
// Create ExportFieldsToJsonOptions with indentation
var options = new Aspose.Pdf.ExportFieldsToJsonOptions { WriteIndented = true };
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Forms();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "TextField.pdf"))
{
// Export fields to JSON
var exportResult = document.Form.ExportToJson(outputJsonPath, options);
// Optionally, save the document with fields to a new PDF
document.Save(dataDir + "TextBox_out.pdf");
}
}
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ImportFieldsFromJsonAndInsertToPdf(string inputPdfPath, string outputJsonPath, string outputPdfPath)
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Forms();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "TextField.pdf"))
{
// Create PDF document to import fields into
var newDocument = new Aspose.Pdf.Document();
// Add page
var page = newDocument.Pages.Add();
// Import fields from JSON
var importResult = newDocument.Form.ImportFromJson(outputJsonPath);
// Save PDF document
newDocument.Save(dataDir + "TextBox_out.pdf");
}
}
此代码片段使用 ‘FileStream’ 管理文件的输入和输出,将字段导出到 JSON 文件。
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExportFieldsToJson(string inputPdfPath, string outputJsonPath, string outputPdfPath)
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Forms();
// Create ExportFieldsToJsonOptions with indentation
var options = new Aspose.Pdf.ExportFieldsToJsonOptions { WriteIndented = true };
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "TextField.pdf"))
{
// Create a FileStream to write the JSON output
using (var fileStream = File.Create(outputJsonPath))
{
// Export fields to JSON using the FileStream
var exportResult = document.Form.ExportToJson(fileStream, options);
}
}
}
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ImportFieldsFromJsonToCreatedPdt(string inputPdfPath, string outputJsonPath, string outputPdfPath)
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Forms();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "TextField.pdf"))
{
// Create PDF document to import fields into
var newDocument = new Aspose.Pdf.Document();
// Add page
var page = newDocument.Pages.Add();
// Open the JSON file for reading
using (var fileStream = File.OpenRead(outputJsonPath))
{
// Import fields from JSON using the FileStream
var importResult = newDocument.Form.ImportFromJson(fileStream);
}
// Save PDF document
newDocument.Save(dataDir + "TextBox_out.pdf");
}
}
在某些情况下,您可能更喜欢在内存中处理数据,而不是处理磁盘上的文件。此方法使用 ‘MemoryStream’ 完全在内存中处理导出和导入过程。
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExportFieldsToJsonUsingMemoryStream(string inputPdfPath, string outputPdfPath)
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Forms();
// Create a MemoryStream to hold the JSON data
using (var memoryStream = new MemoryStream())
{
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "TextField.pdf"))
{
// Export fields to JSON and write to the MemoryStream
var exportResult = document.Form.ExportToJson(memoryStream);
}
// Save the MemoryStream content to a file
File.WriteAllBytes(outputPdfPath, memoryStream.ToArray());
}
}
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ImportFieldsFromJsonUsingMemoryStream(string inputPdfPath, string outputPdfPath)
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Forms();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "TextField.pdf"))
{
// Create PDF document to import fields into
var newDocument = new Aspose.Pdf.Document();
// Add page
var page = newDocument.Pages.Add();
// Create a MemoryStream to hold the JSON data
using (var memoryStream = new MemoryStream())
{
// Export fields from the original document to the MemoryStream
document.Form.ExportToJson(memoryStream);
// Reset the MemoryStream position to the beginning
memoryStream.Position = 0;
// Import fields from the MemoryStream into the new document
var importResult = newDocument.Form.ImportFromJson(memoryStream);
}
// Save PDF document
newDocument.Save(dataDir + "TextBox_out.pdf");
}
}
有时,您可能只需要导出或导入特定字段,而不是文档中的所有字段。
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExportFieldToJson(string inputPdfPath, string outputJsonPath, string outputPdfPath)
{
// Create ExportFieldsToJsonOptions with indentation
var options = new Aspose.Pdf.ExportFieldsToJsonOptions { WriteIndented = true };
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Forms();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "TextField.pdf"))
{
// Get the specific field (WidgetAnnotation) from the form
if (document.Form[1] is Aspose.Pdf.Annotations.WidgetAnnotation field)
{
// Export the field to JSON
var exportResult = field.ExportToJson(outputJsonPath, options);
}
}
}
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ImportFieldFromJson(string inputPdfPath, string outputJsonPath, string outputPdfPath)
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Forms();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "TextField.pdf"))
{
// Create PDF document to import fields into
var newDocument = new Aspose.Pdf.Document();
// Add page
var page = newDocument.Pages.Add();
// Import fields from JSON
var importResult = newDocument.Form.ImportFromJson(outputJsonPath);
// Save PDF document
newDocument.Save(dataDir + "TextBox_out.pdf");
}
}
此示例与上面的示例类似,但使用 ‘FileStream’ 处理特定字段的导出和导入操作。
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExportFieldToJson(string inputPdfPath, string outputJsonPath, string outputPdfPath)
{
// Create ExportFieldsToJsonOptions with indentation
var options = new Aspose.Pdf.ExportFieldsToJsonOptions { WriteIndented = true };
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Forms();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "TextField.pdf"))
{
// Get the specific field (WidgetAnnotation) from the form
if (document.Form[1] is Aspose.Pdf.Annotations.WidgetAnnotation field)
{
// Create a FileStream to write the JSON output
using (var fileStream = File.Create(outputJsonPath))
{
// Export the field to JSON using the FileStream
var exportResult = field.ExportToJson(fileStream, options);
}
}
}
}
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ImportFieldFromJson(string inputPdfPath, string outputJsonPath, string outputPdfPath)
{
// Create PDF document to import fields into
using (var newDocument = new Aspose.Pdf.Document())
{
// Add page
var page = newDocument.Pages.Add();
// Open the JSON file for reading
using (var fileStream = File.OpenRead(outputJsonPath))
{
// Import fields from JSON using the FileStream
var importResult = newDocument.Form.ImportFromJson(fileStream);
}
// Save PDF document
newDocument.Save(dataDir + "TextBox_out.pdf");
}
}
此代码片段演示如何使用 ‘MemoryStream’ 将 PDF 文档中的特定表单字段导出为 JSON 格式,然后将其导入到新的 PDF 文档中。
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExportFieldToJsonUsingMemoryStream(string inputPdfPath, string outputPdfPath)
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Forms();
// Create a MemoryStream to hold the JSON data
using (var memoryStream = new MemoryStream())
{
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "TextField.pdf"))
{
// Get the specific field (WidgetAnnotation) from the form
if (document.Form[1] is Aspose.Pdf.Annotations.WidgetAnnotation field)
{
// Export the field to JSON and write to the MemoryStream
var exportResult = field.ExportToJson(memoryStream);
}
}
// Optionally, you can save the MemoryStream content to a file
File.WriteAllBytes(outputPdfPath, memoryStream.ToArray());
}
}
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ImportFieldFromJsonUsingMemoryStream(string inputPdfPath, string outputPdfPath)
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Forms();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "TextField.pdf"))
{
// Create PDF document to import fields into
var newDocument = new Aspose.Pdf.Document();
// Add page
var page = newDocument.Pages.Add();
// Create a MemoryStream to hold the JSON data
using (var memoryStream = new MemoryStream())
{
// Export fields from the original document to the MemoryStream
document.Form.ExportToJson(memoryStream);
// Reset the MemoryStream position to the beginning
memoryStream.Position = 0;
// Import fields from the MemoryStream into the new document
var importResult = newDocument.Form.ImportFromJson(memoryStream);
}
// Save PDF document
newDocument.Save(dataDir + "TextBox_out.pdf");
}
}
此代码片段演示如何使用 FileStream 将 PDF 文档中特定表单字段的值导出到 JSON 文件。
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExportFieldValueToJson(string inputPdfPath, string outputJsonPath, string outputPdfPath)
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Forms();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "TextField.pdf"))
{
// Get the specific field from the form
if (document.Form.Fields[1] is Aspose.Pdf.Forms.Field field)
{
// Create a FileStream to write the JSON output
using (var fileStream = File.Create(outputJsonPath))
{
// Export the field value to JSON using the FileStream
field.ExportValueToJson(fileStream);
}
}
}
}
此代码片段演示如何使用 FileStream 将 JSON 文件中的值导入到 PDF 文档中的特定表单字段。
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ImportFieldValueFromJson(string inputPdfPath, string outputJsonPath, string outputPdfPath)
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Forms();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "TextField.pdf"))
{
// Get the specific field from the form
if (document.Form.Fields[1] is Aspose.Pdf.Forms.Field field)
{
// Open the JSON file for reading
using (var fileStream = File.OpenRead(outputJsonPath))
{
// Import the field value from JSON using the FileStream
field.ImportValueFromJson(fileStream);
}
}
// Save PDF document
document.Save(dataDir + "TextBox_out.pdf");
}
}
此代码片段演示如何使用 FileStream 和 Aspose.PDF 将 JSON 文件中的另一个字段的值导入到指定字段。
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ImportFieldValueFromJson(string inputPdfPath, string outputJsonPath, string outputPdfPath, string fullNameOfOtherFieldInJson)
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Forms();
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "TextField.pdf"))
{
// Get the specific field from the form
if (document.Form.Fields[1] is Aspose.Pdf.Forms.Field field)
{
// Open the JSON file for reading
using (var fileStream = File.OpenRead(outputJsonPath))
{
// Import the field value from JSON using the FileStream and the full name of the other field in JSON
field.ImportValueFromJson(fileStream, fullNameOfOtherFieldInJson);
}
}
// Save PDF document
document.Save(dataDir + "TextBox_out.pdf");
}
}
此示例演示如何使用 Aspose.PDF 将表单字段从 PDF 导出到 JSON 文件,包括在导出过程中处理每个字段的不同状态。
让我们逐步分解这个 Aspose.PDF 示例:
加载文档。我们从指定目录加载名为 “Sample.pdf” 的 PDF 文档。
设置导出选项。在这里,我们创建一个 ExportFieldsToJsonOptions 的实例,并设置两个选项:
ExportPasswordValue
: 这包括导出中的密码字段。WriteIndented
: 这将 JSON 输出格式化为缩进,以便于阅读。将表单字段导出到 JSON。我们使用指定的参数将 PDF 文件中的表单字段导出到名为 “export.json” 的 JSON 文件中。
处理导出结果: 此循环遍历导出结果并打印每个字段的状态:
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ExportFieldsToJsonWithOptions()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf_Forms();
// Open PDF document
using (var document = new Aspose.Pdf.Document(Path.Combine(dataDir, "Forms", "Sample.pdf")))
{
// Create ExportFieldsToJsonOptions with specific settings
var options = new Aspose.Pdf.ExportFieldsToJsonOptions
{
ExportPasswordValue = true,
WriteIndented = true,
};
var exportResults = document.Form.ExportToJson(File.OpenWrite("export.json"), options);
foreach (var result in exportResults)
{
Console.Write($"{result.FieldFullName} ");
switch (result.FieldSerializationStatus)
{
case Aspose.Pdf.FieldSerializationStatus.Success:
Console.WriteLine("Success");
break;
case Aspose.Pdf.FieldSerializationStatus.Warning:
foreach (var messages in result.WarningMessages)
{
Console.WriteLine(messages);
}
break;
case Aspose.Pdf.FieldSerializationStatus.Error:
foreach (var messages in result.ErrorMessages)
{
Console.WriteLine(messages);
}
break;
}
}
}
}
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.