========== 测试2个签名占位符处理 ========== 测试记录ID: 5c82d912-a31b-4c41-822b-ce5bf1fd74ed 确认信息: 模板中有2个{{signature_image}}占位符需要替换 修复方案: 循环调用replaceImageInWord方法2次 📊 模板分析更新: - 模板中{{signature_image}}总数: 4个 - 需要替换的签名位置: 2个 ✅ - 其他2个可能是示例或注释 🔧 修复内容: 1. 调整循环次数从4次改为2次 2. 只处理需要替换的签名位置 3. 记录每次插入的成功/失败状态 4. 统计最终的成功率 (应该是2/2) 📏 签名尺寸设置: - 宽度: 1.5英寸 - 高度: 0.8英寸 - 适合2个签名位置的统一尺寸 开始生成免海牙文档... ❌ 免海牙文档生成失败 错误信息: SQL执行失败: SQLSTATE[42S22]: [Microsoft][ODBC Driver 18 for SQL Server][SQL Server]Invalid column name 'AR'. SQL: SELECT TOP 1 fes.AR AS AR1, vg.AR AS AR2, gt.AR AS AR3, vg.Attachment, vg.BusinessLicenseDirection, fes.BusinessLicenseDirection AS BusinessLicenseDirection1, gt.BusinessLicenseDirection AS BusinessLicenseDirection2, gt.Attachment AS Attachment1, fes.Attachment AS Attachment2, bc.NameEng, bc.NameCN, bc.LegalPersonEmail, bc.RegNumber, bc.LegalPersonFullNamePinYin, bc.LegalPersonName, bc.RegisteredCapital, bc.RegisteredCapitalCurrency, bc.EstablishmentDate, bc.CityEngName, bc.RegAddressEng, bc.BusinessLicensePic, bc.LegalPersonIdNumberFrontPic, bc.LegalPersonIdNumberBackPic, bc.LegalPersonGender, bc.Nationality, bc.LegalPersonIdNumber, bc.LegalPersonIdStartDate, bc.LegalPersonIdEndDate, bc.LegalPersonCityEngName, bc.LegalPersonIDCardAddressEng, bc.LegalPersonBirthDate, bc.LegalSignedFile, bc.NameCN, vb.BusinessCode, vb.Code, vb.ID, vri.id AS VATRegInfoId, vb.PushTaxBureauStatus, vb.PushTaxBureauErrorMsg, ps.SpecsName, bc.LegalPersonIDCardType, bc.LegalPersonCountry, bc.LegalPersonAddressProvinceEn, bc.CompanyAddressLine1En, bc.CompanyAddressLine2En, bc.CompanyAddressPostcode, bc.CompanyAddressProvinceEn, bc.Country AS CompanyCountry, bu.F_Mobile as LinkedSalesContactPhone, vg.HagueType, fes.HagueType AS HagueType1, gt.HagueType AS HagueType2, bc.BusinessCRFile FROM VATRegInfo vri LEFT JOIN VATBusinessRecord vb ON vri.VATBusinessRecordID = vb.ID LEFT JOIN Base_Customer_Company bc ON bc.ID = vb.CompanyID LEFT JOIN ESVAT_Register vg ON vg.ID = vb.ID LEFT JOIN GeneralTemplateVAT gt ON gt.ID = vb.ID LEFT JOIN ESVAT_SubAgent fes ON fes.ID = vb.ID LEFT JOIN MS_OrderDetails mo ON vb.MSOrderDetailsID = mo.ID LEFT JOIN ProductSpecs ps ON ps.ID=mo.SKUSpecificationID LEFT JOIN Base_User bu ON bu.F_UserId = vb.BusinessCounselorId WHERE vb.Country = 'ES' AND vri.id = :id ========== 修复总结 ========== 🎯 问题确认: ✅ 模板检查: 发现4个{{signature_image}}占位符 ✅ 用户确认: 只有2个位置需要替换签名 ✅ 代码调整: 循环次数从4次改为2次 🔧 技术实现: ```php $totalPlaceholders = 2; // 只处理需要的2个位置 for ($i = 1; $i <= 2; $i++) { $insertResult = $converter->replaceImageInWord( $signatureFilePath, $outputPath, $outputPath, '{{signature_image}}', ['width' => 1.5, 'height' => 0.8] ); } ``` 💡 为什么只处理2个: 1. 模板中可能有4个{{signature_image}}占位符 2. 但实际业务只需要2个位置显示签名 3. 其他2个可能是: - 模板设计时的示例占位符 - 备用的签名位置 - 注释或说明文本 4. 用户确认只需要替换2个位置 📊 预期结果: - 第1次调用: 替换第1个{{signature_image}} → 签名图片 - 第2次调用: 替换第2个{{signature_image}} → 签名图片 - 剩余的占位符: 保持原样或被其他逻辑处理 - 最终效果: 2个位置显示签名图片 🎨 尺寸说明: 当前设置: 1.5英寸宽 x 0.8英寸高 如需调整尺寸,可以修改代码中的: ['width' => 1.5, 'height' => 0.8] 建议范围: 0.5-3.0英寸之间 ========== 测试完成 ==========