FormEditor.h
1 #pragma once
2 // Copyright (c) 2001-2024 Aspose Pty Ltd. All Rights Reserved.
3 
4 // C# preprocessor directive: #if !NETCORE
5 
6 
7 // C# preprocessor directive: #endif
8 
9 
10 #include <system/enum_helpers.h>
11 #include <system/array.h>
12 #include <cstdint>
13 
14 #include "Aspose.PDF.Cpp/Facades/Facade.h"
15 #include "Aspose.PDF.Cpp/aspose_pdf_api_defs.h"
16 
17 namespace Aspose
18 {
19 namespace Pdf
20 {
21 namespace Annotations
22 {
23 enum class AnnotationFlags;
24 class SubmitFormAction;
25 class WidgetAnnotation;
26 } // namespace Annotations
27 enum class ContentDisposition;
28 class Document;
29 namespace Facades
30 {
31 enum class FieldType;
32 enum class FontStyle;
33 class FormFieldFacade;
34 enum class PropertyFlag;
35 enum class SubmitFormFlag;
36 } // namespace Facades
37 namespace Forms
38 {
39 class ButtonField;
40 class Field;
41 } // namespace Forms
42 enum class PdfFormat;
43 class Point;
44 class SaveOptions;
45 } // namespace Pdf
46 } // namespace Aspose
47 namespace System
48 {
49 namespace IO
50 {
51 class Stream;
52 } // namespace IO
53 namespace Web
54 {
55 class HttpResponse;
56 } // namespace Web
57 namespace Xml
58 {
59 class XmlNamespaceManager;
60 class XmlNode;
61 } // namespace Xml
62 } // namespace System
63 
64 namespace Aspose {
65 
66 namespace Pdf {
67 
68 namespace Facades {
69 
73 class ASPOSE_PDF_SHARED_CLASS FormEditor final : public Aspose::Pdf::Facades::SaveableFacade
74 {
75  typedef FormEditor ThisType;
77 
78  typedef ::System::BaseTypesInfo<BaseType> ThisTypeBaseTypesInfo;
79  ASPOSE_PDF_SHARED_RTTI_INFO_DECL();
80 
81 public:
82 
89  ASPOSE_PDF_SHARED_API System::String get_SrcFileName() const;
96  ASPOSE_PDF_SHARED_API void set_SrcFileName(System::String value);
103  ASPOSE_PDF_SHARED_API System::String get_DestFileName() const;
110  ASPOSE_PDF_SHARED_API void set_DestFileName(System::String value);
117  ASPOSE_PDF_SHARED_API System::SharedPtr<System::IO::Stream> get_SrcStream() const;
124  ASPOSE_PDF_SHARED_API void set_SrcStream(System::SharedPtr<System::IO::Stream> value);
129  ASPOSE_PDF_SHARED_API void set_ConvertTo(PdfFormat value);
136  ASPOSE_PDF_SHARED_API System::SharedPtr<System::IO::Stream> get_DestStream() const;
143  ASPOSE_PDF_SHARED_API void set_DestStream(System::SharedPtr<System::IO::Stream> value);
149  ASPOSE_PDF_SHARED_API System::ArrayPtr<System::String> get_Items() const;
155  ASPOSE_PDF_SHARED_API void set_Items(System::ArrayPtr<System::String> value);
159  ASPOSE_PDF_SHARED_API System::ArrayPtr<System::ArrayPtr<System::String>> get_ExportItems() const;
163  ASPOSE_PDF_SHARED_API void set_ExportItems(System::ArrayPtr<System::ArrayPtr<System::String>> value);
169  ASPOSE_PDF_SHARED_API System::SharedPtr<FormFieldFacade> get_Facade() const;
175  ASPOSE_PDF_SHARED_API void set_Facade(System::SharedPtr<FormFieldFacade> value);
181  ASPOSE_PDF_SHARED_API float get_RadioGap();
187  ASPOSE_PDF_SHARED_API void set_RadioGap(float value);
193  ASPOSE_PDF_SHARED_API bool get_RadioHoriz() const;
199  ASPOSE_PDF_SHARED_API void set_RadioHoriz(bool value);
212  ASPOSE_PDF_SHARED_API double get_RadioButtonItemSize() const;
225  ASPOSE_PDF_SHARED_API void set_RadioButtonItemSize(double value);
229  ASPOSE_PDF_SHARED_API SubmitFormFlag get_SubmitFlag() const;
233  ASPOSE_PDF_SHARED_API void set_SubmitFlag(SubmitFormFlag value);
238  ASPOSE_PDF_SHARED_API Aspose::Pdf::ContentDisposition get_ContentDisposition() const;
243  ASPOSE_PDF_SHARED_API void set_ContentDisposition(Aspose::Pdf::ContentDisposition value);
247  ASPOSE_PDF_SHARED_API System::SharedPtr<System::Web::HttpResponse> get_Response() const;
251  ASPOSE_PDF_SHARED_API void set_Response(System::SharedPtr<System::Web::HttpResponse> value);
256  ASPOSE_PDF_SHARED_API System::SharedPtr<Aspose::Pdf::SaveOptions> get_SaveOptions() const;
261  ASPOSE_PDF_SHARED_API void set_SaveOptions(System::SharedPtr<Aspose::Pdf::SaveOptions> value);
265  ASPOSE_PDF_SHARED_API System::String get_AttachmentName() const;
269  ASPOSE_PDF_SHARED_API void set_AttachmentName(System::String value);
270 
288  ASPOSE_PDF_SHARED_API FormEditor(System::String srcFileName, System::String destFileName);
294  ASPOSE_PDF_SHARED_API FormEditor();
295 
303  ASPOSE_PDF_SHARED_API void Save();
312  ASPOSE_PDF_SHARED_API bool SetFieldAttribute(System::String fieldName, PropertyFlag flag);
321  ASPOSE_PDF_SHARED_API bool SetFieldAppearance(System::String fieldName, Aspose::Pdf::Annotations::AnnotationFlags flags);
327  ASPOSE_PDF_SHARED_API Aspose::Pdf::Annotations::AnnotationFlags GetFieldAppearance(System::String fieldName);
336  ASPOSE_PDF_SHARED_API bool SetSubmitFlag(System::String fieldName, SubmitFormFlag submitFormFlag);
345  ASPOSE_PDF_SHARED_API bool SetSubmitUrl(System::String fieldName, System::String url);
354  ASPOSE_PDF_SHARED_API bool SetFieldLimit(System::String fieldName, int32_t fieldLimit);
365  ASPOSE_PDF_SHARED_API bool SetFieldCombNumber(System::String fieldName, int32_t combNumber);
377  ASPOSE_PDF_SHARED_API bool MoveField(System::String fieldName, float llx, float lly, float urx, float ury);
391  ASPOSE_PDF_SHARED_API bool AddField(FieldType fieldType, System::String fieldName, int32_t pageNum, float llx, float lly, float urx, float ury);
406  ASPOSE_PDF_SHARED_API bool AddField(FieldType fieldType, System::String fieldName, System::String initValue, int32_t pageNum, float llx, float lly, float urx, float ury);
413  ASPOSE_PDF_SHARED_API void RemoveField(System::String fieldName);
417  ASPOSE_PDF_SHARED_API void ResetFacade();
421  ASPOSE_PDF_SHARED_API void ResetInnerFacade();
431  ASPOSE_PDF_SHARED_API void CopyInnerField(System::String fieldName, System::String newFieldName, int32_t pageNum);
443  ASPOSE_PDF_SHARED_API void CopyInnerField(System::String fieldName, System::String newFieldName, int32_t pageNum, float abscissa, float ordinate);
452  ASPOSE_PDF_SHARED_API void CopyOuterField(System::String srcFileName, System::String fieldName);
462  ASPOSE_PDF_SHARED_API void CopyOuterField(System::String srcFileName, System::String fieldName, int32_t pageNum);
474  ASPOSE_PDF_SHARED_API void CopyOuterField(System::String srcFileName, System::String fieldName, int32_t pageNum, float abscissa, float ordinate);
481  ASPOSE_PDF_SHARED_API void DecorateField(System::String fieldName);
488  ASPOSE_PDF_SHARED_API void DecorateField(FieldType fieldType);
494  ASPOSE_PDF_SHARED_API void DecorateField();
502  ASPOSE_PDF_SHARED_API void RenameField(System::String fieldName, System::String newFieldName);
509  ASPOSE_PDF_SHARED_API void RemoveFieldAction(System::String fieldName);
523  ASPOSE_PDF_SHARED_API void AddSubmitBtn(System::String fieldName, int32_t page, System::String label, System::String url, float llx, float lly, float urx, float ury);
531  ASPOSE_PDF_SHARED_API void AddListItem(System::String fieldName, System::String itemName);
539  ASPOSE_PDF_SHARED_API void AddListItem(System::String fieldName, System::ArrayPtr<System::String> exportName);
547  ASPOSE_PDF_SHARED_API void DelListItem(System::String fieldName, System::String itemName);
554  ASPOSE_PDF_SHARED_API bool SetFieldScript(System::String fieldName, System::String script);
561  ASPOSE_PDF_SHARED_API bool AddFieldScript(System::String fieldName, System::String script);
569  ASPOSE_PDF_SHARED_API bool Single2Multiple(System::String fieldName);
579  ASPOSE_PDF_SHARED_API bool SetFieldAlignment(System::String fieldName, int32_t alignment);
589  ASPOSE_PDF_SHARED_API bool SetFieldAlignmentV(System::String fieldName, int32_t alignment);
590 
595  ASPOSE_PDF_SHARED_API FormEditor(System::SharedPtr<Aspose::Pdf::Document> document);
604  ASPOSE_PDF_SHARED_API FormEditor(System::SharedPtr<Aspose::Pdf::Document> document, System::String destFileName);
613  ASPOSE_PDF_SHARED_API FormEditor(System::SharedPtr<Aspose::Pdf::Document> document, System::SharedPtr<System::IO::Stream> destStream);
620  ASPOSE_PDF_SHARED_API FormEditor(System::SharedPtr<System::IO::Stream> inputStream, System::SharedPtr<System::Web::HttpResponse> response);
627  ASPOSE_PDF_SHARED_API FormEditor(System::String inputFile, System::SharedPtr<System::Web::HttpResponse> response);
628 
632  ASPOSE_PDF_SHARED_API void Close() override;
633 
634 private:
635 
636  System::String _srcFileName;
637  System::String _destFileName;
640  System::SharedPtr<FormFieldFacade> _formFieldFacade;
643  double _radioGap;
644  bool _radioHoriz;
645  SubmitFormFlag _submitFlag;
646  PdfFormat _convertTo;
647  bool _executeConvert;
648  Aspose::Pdf::ContentDisposition _contentDisposition;
650  System::String _attachmentName;
652  double _radioButtonItemSize;
653 
654  void CloseSource();
655  void CloseDest();
657  void AssertDestStream();
659  void copyField(System::SharedPtr<Aspose::Pdf::Forms::Field> field, System::String newFieldName, int32_t pageNum, double abscissa, double ordinate);
663  int32_t translateSubmitFlag(SubmitFormFlag formFlag);
665  System::SharedPtr<System::Xml::XmlNode> GetFieldTemplate(System::String fieldName);
666  void AddXmlFieldItems(System::SharedPtr<System::Xml::XmlNode> fieldTemplate, System::String name);
667  bool IsHiddenList(System::SharedPtr<System::Xml::XmlNode> list);
668  void GetFieldAndTemplate(System::String fieldName, System::SharedPtr<Aspose::Pdf::Forms::Field>& field, System::SharedPtr<System::Xml::XmlNode>& template_);
669  void AddXmlFieldItems(System::SharedPtr<System::Xml::XmlNode> fieldTemplate, System::String name, System::String value);
670 
671 };
672 
673 } // namespace Facades
674 } // namespace Pdf
675 } // namespace Aspose
676 
677 
String class used across the library. Is a substitute for C# System.String when translating code...
Definition: string.h:121
Base class for all saveable facades.
Definition: Facade.h:151
PropertyFlag
Enumeration of possible field flags.
Definition: PropertyFlag.h:13
Definition: Artifact.h:67
Base facade class.
Definition: Facade.h:57
FontStyle
Enumerates 14 types of font.
Definition: FontStyle.h:13
PdfFormat
This class represents an pdf format.
Definition: PdfFormat.h:16
Specifies that the member is a field.
Pointer class to wrap types being allocated on heap. Use it to manage memory for classes inheriting O...
Definition: fwd.h:22
means saving in XML format
General facade interface that defines common facades methods.
Definition: IFacade.h:33
Definition: AFRelationship.h:4
SubmitFormFlag
Enumeration of possible submit form flags.
Definition: SubmitFormFlag.h:15
AnnotationFlags
A set of flags specifying various characteristics of the annotation.
Definition: AnnotationFlags.h:19
FieldType
Enumeration of possible field types.
Definition: FieldType.h:18
A printer&#39;s point (1/72 of an inch).
ContentDisposition
MIME protocol Content-Disposition header.
Definition: ContentDisposition.h:11
Class for editing forms (ading/deleting field etc)
Definition: FormEditor.h:73
Whole PDF file will be submitted.