FillForms.cs
// 完毕:
using System;
using System.IO;
using System.Drawing;
using System.Collections.Generic;
using System.Linq;
using GrapeCity.Documents.Pdf;
using GrapeCity.Documents.Text;

namespace DsPdfWeb.Demos
{
    // 此示例提供了可以填写的示例电子商务类型表单
    // 并直接在示例浏览器中保存或打印
    // 使用 GcDocs.PdfViewer 中的“保存”或“打印”按钮。
    // 
    // 请注意,如果打印填写好的表格,一切就完成了
    // 在客户端浏览器中,没有数据发送到我们的演示服务器。
    // 但是,如果您单击“保存”按钮,输入的数据以及
    // 原始表单被发送到演示服务器。服务器使用 GcDocs.Pdf
    // 将数据插入 PDF,并发送填写的 PDF 表单
    // 返回给客户端。演示服务器既不存储也不分析数据。
    // 
    // 另请注意,查看器的“下载”按钮只会下载
    // 没有数据的原始表格。与“保存”按钮不同,“下载”按钮
    // 不访问服务器,只获取加载的原始 PDF。
    public class FillForms
    {
        // 默认情况下,生成第一个表单:
        public void CreatePDF(Stream stream, int paramsIdx = 0)
        {
            CreatePDF(stream, GetSampleParamsList()[paramsIdx]);
        }

        public void CreatePDF(Stream stream, string[] sampleParams)
        {
            var fn = sampleParams[3];
            var pn = Path.Combine("Resources", "PDFs", "Forms", "misc", fn);
            using (var fs = File.OpenRead(pn))
                fs.CopyTo(stream);
        }

        public static List<string[]> GetSampleParamsList()
        {
            // 字符串是名称、描述,其余是任意字符串:
            return new List<string[]>()
            {
                new string[] { "@us-tax-forms/Form W-7", "Application for IRS Individual Taxpayer Identification Number", "", "fw7-demo.pdf" },
                new string[] { "@us-tax-forms/Form SS-4", "Application for Employer Identification Number", null, "fss4-demo.pdf" },
                new string[] { "@e-com-forms/Goods Return", "Goods Return and Exchange Form", null, "goods-return-form.pdf" },
                new string[] { "@hr-forms/Time Sheet", "Time Sheet Form", null, "time-sheet-form.pdf" },
                new string[] { "@hr-forms/Trip Permission", "Offsite field trip permission slip", null, "offsite-field-trip-form.pdf" },
                new string[] { "@member-forms/Health Info", "Health Info Intake Form", null, "health-intake-form.pdf" },
                new string[] { "@event-forms/Event Feedback", "Event Feedback Form", null, "event-feedback-form.pdf" },
            };
        }

        // 由 SupportApiDemo 用于初始化 GcDocs.PdfViewer。
        public static GcPdfViewerSupportApiDemo.Models.PdfViewerOptions PdfViewerOptions
        {
            get => new GcPdfViewerSupportApiDemo.Models.PdfViewerOptions(
                GcPdfViewerSupportApiDemo.Models.PdfViewerOptions.Options.FormEditorPanel);
        }
    }
}