========== 测试两页签名占位符处理 ========== 测试记录ID: 5c82d912-a31b-4c41-822b-ce5bf1fd74ed 确认信息: 模板分两页,每页有一个签名占位符需要替换 当前配置: 循环2次处理2个签名位置 📄 模板结构分析: - 第1页: 包含一个{{signature_image}}占位符 - 第2页: 包含一个{{signature_image}}占位符 - 总计: 2个真实的签名位置需要替换 - XML中显示4个占位符是因为Word兼容性格式重复 🔧 当前处理逻辑: 1. 第1次调用replaceImageInWord: 替换第1页的签名占位符 2. 第2次调用replaceImageInWord: 替换第2页的签名占位符 3. 预期结果: 两页都显示签名图片 📏 签名尺寸设置: - 宽度: 1.5英寸 - 高度: 0.8英寸 - 两页使用相同的签名图片和尺寸 开始生成免海牙文档... ❌ 免海牙文档生成失败 错误信息: 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 ========== 问题诊断指南 ========== 🔍 如果签名仍有问题,请检查: 1. PDF第1页是否有签名图片 2. PDF第2页是否有签名图片 3. 是否还有{{signature_image}}文本显示 💡 可能的解决方案: 方案1: 如果两页都没有签名图片 - 检查签名文件是否正确下载 - 检查replaceImageInWord方法是否正常工作 方案2: 如果只有一页有签名图片 - 可能需要增加循环次数到4次 - 处理Word兼容格式的重复占位符 方案3: 如果仍显示{{signature_image}}文本 - 说明某些占位符没有被替换 - 需要增加循环次数或改进替换逻辑 🔧 代码调整建议: 如果当前2次循环不够,可以尝试: ```php $totalPlaceholders = 4; // 处理所有XML中的占位符 for ($i = 1; $i <= 4; $i++) { // 替换逻辑 } ``` 📊 预期的最终效果: - 第1页: 显示签名图片,无占位符文本 - 第2页: 显示签名图片,无占位符文本 - 整体: 专业的免海牙授权书文档 ========== 测试完成 ==========