修改AcroForm
Contents
[
Hide
]
获取或设置字段限制
FormEditor类的SetFieldLimit(field, limit)方法允许您设置字段限制,即可以输入到字段中的最大字符数。
void SetFieldLimitDom() {
String _dataDir("C:\\Samples\\");
// 打开文档
auto document = MakeObject<Document>(_dataDir + u"GetValuesFromAllFields.pdf");
auto textBoxField = System::DynamicCast<TextBoxField>(document->get_Form()->idx_get(u"textbox1"));
textBoxField->set_MaxLen(15);
document->Save(_dataDir + u"GetValuesFromAllFields.pdf");
}
类似地,Aspose.PDF具有使用DOM方法获取字段限制的方法。 以下代码片段显示了步骤。
void GetFieldLimitDom() {
String _dataDir("C:\\Samples\\");
// 打开文档
auto document = MakeObject<Document>(_dataDir + u"GetValuesFromAllFields.pdf");
auto textBoxField = System::DynamicCast<TextBoxField>(document->get_Form()->idx_get(u"textbox1"));
Console::WriteLine(u"Limit: {0}", textBoxField->get_MaxLen());
}
您还可以使用以下代码片段通过 Aspose.PDF.Facades 命名空间设置和获取相同的值。
using namespace System;
using namespace Aspose::Pdf;
using namespace Aspose::Pdf::Forms;
void SetFieldLimitFacade(){
String _dataDir("C:\\Samples\\");
// 添加带限制的字段
auto form = MakeObject<Aspose::Pdf::Facades::FormEditor>(_dataDir + u"input.pdf", _dataDir + u"SetFieldLimit_out.pdf");
form->SetFieldLimit(u"textbox1", 15);
form->Save();
}
void GetFieldLimitFacade(){
String _dataDir("C:\\Samples\\");
// 添加带限制的字段
auto form = MakeObject<Aspose::Pdf::Facades::Form>(_dataDir + u"input.pdf");
Console::WriteLine(u"Limit: {0}", form->GetFieldLimit(u"textbox1"));
}
为表单字段设置自定义字体
Adobe PDF 文件中的表单字段可以配置为使用特定的默认字体。在早期版本的 Aspose.PDF 中,只支持 14 种默认字体。后来的版本允许开发人员应用任何字体。要设置和更新用于表单字段的默认字体,请使用 DefaultAppearance (Font font, double size, Color color) 类。此类可以在 Aspose.PDF.InteractiveFeatures 命名空间下找到。要使用此对象,请使用 Field 类的 DefaultAppearance 属性。
以下代码片段演示了如何为 PDF 表单字段设置默认字体。
void SetCustomFontForField() {
String _dataDir("C:\\Samples\\");
// 打开文档
auto document = new Document(_dataDir + u"FormFieldFont14.pdf");
// 从文档获取特定的表单字段
auto textBoxField = System::DynamicCast<TextBoxField>(document->get_Form()->idx_get(u"textbox1"));
// 创建字体对象
auto font = Aspose::Pdf::Text::FontRepository::FindFont(u"ComicSansMS");
// 设置表单字段的字体信息
textBoxField->set_DefaultAppearance(MakeObject<Aspose::Pdf::Annotations::DefaultAppearance>(font, 10, System::Drawing::Color::get_Black()));
// 保存更新后的文档
document->Save(_dataDir + u"FormFieldFont14.pdf");
}
从现有表单中删除字段
所有表单字段都包含在 Document 对象的 Form 集合中。此集合提供了管理表单字段的不同方法,包括 Delete 方法。如果要删除特定字段,请将字段名称作为参数传递给 Delete 方法,然后保存更新后的 PDF 文档。以下代码片段显示了如何从 PDF 文档中删除特定字段。
void DeleteFormField() {
String _dataDir("C:\\Samples\\");
// 打开文档
auto document = new Document(_dataDir + u"DeleteFormField.pdf");
// 按名称删除特定字段
document->get_Form()->Delete(u"textbox1");
// 保存修改后的文档
document->Save(_dataDir + u"DeleteFormField_out.pdf");
}