GroupDocs.Assembly Cloud SDK لـ Go يتيح لك دمج قدرات قوية لتوليد المستندات في أي تطبيق Go دون الحاجة إلى مكتبات طرف ثالث ثقيلة. الخدمة مستضافة بالكامل على السحابة وتتواصل عبر REST API بسيطة، مما يعني أنك تحتاج فقط إلى اتصال بالإنترنت وبيانات اعتماد API الخاصة بك لبدء إنشاء المستندات.
يتكون سير العمل النموذجي من ثلاث خطوات منطقية:
تمكّن هذه الطريقة من توليد العقود، الفواتير، قوائم الشحن، عروض المبيعات، وأي مستند حيوي للأعمال في الوقت الفعلي. كما تدعم Mail Merge لإنشاء دفعات من الرسائل المخصصة، توليد barcode، تنسيق خلفية HTML، وإنشاء مرفقات email. جميع العمليات مؤمنة بتشفير SSL/TLS ومصادقة مفتاح API، مما يضمن عدم خروج البيانات الحساسة من السحابة غير محمية.
نظرًا لأن المعالجة الثقيلة تتم في السحابة، فإن SDK يعمل على جميع أنظمة التشغيل التي يمكنها تشغيل Go (Windows macOS، Linux) ويتطلب فقط خطوة التثبيت القياسية go get. لا حاجة إلى برامج إضافية، ولا تثبيتات Office محلية، ولا معالجة يدوية لصيغ الملفات المعقدة – حيث تُجرد خدمة السحابة كل هذه التعقيدات، مما يتيح لك التركيز على منطق الأعمال.
المقتطف أدناه يوضح كيفية رفع قالب، قراءة مصدر بيانات، واستدعاء Assembly API لإنتاج مستند باستخدام Go.
الخطوات
config.json.AssembleOptions بمسار القالب وتنسيق الإخراج المطلوب.AssembleDocument واستلام الملف المُجمّع.import (
"os"
"io/ioutil"
"github.com/groupdocs-assembly-cloud/groupdocs-assembly-cloud-go/api"
"github.com/groupdocs-assembly-cloud/groupdocs-assembly-cloud-go/api/models"
)
// 1. Initialise configuration
config, _ := models.NewConfiguration("config.json")
assemblyApi, ctx, _ := api.NewAPIClient(config)
// 2. Upload template
fileName := "Input1.docx"
requestFileContent, _ := os.Open(fileName)
uploadReq := &models.UploadFileRequest{
FileContent: requestFileContent,
Path: ToStringPointer(fileName),
}
_, _, _ = assemblyApi.UploadFile(ctx, uploadReq)
// 3. Read data source
dataFile := "Input2.docx" // can be XML or JSON
data, _ := ioutil.ReadFile(dataFile)
// 4. Prepare assemble options
templateInfo := api.TemplateFileInfo{FilePath: fileName}
assembleOptions := api.AssembleOptions{
TemplateFileInfo: &templateInfo,
SaveFormat: "docx",
ReportData: string(data),
}
// 5. Generate document
output, err := assemblyApi.AssemblyApi.AssembleDocument(ctx, assembleOptions)
if err != nil {
// handle error
}
// `output` contains the generated document