聚美智数


PDF加水印

<h3>接口描述</h3> <ul> <li>支持图片水印和文字水印</li> <li>支持多个位置选择或平铺</li> <li>Pdf文件大小最大支持10M</li> </ul> <h3>请求地址</h3> <p><code>https://api.jumdata.com/pdf/edit/watermark</code></p> <h3>请求方式</h3> <ul> <li>POST</li> </ul> <h3>请求格式</h3> <ul> <li>x-www-form-urlencoded</li> </ul> <h3>请求参数</h3> <table> <thead> <tr> <th>名称</th> <th>类型</th> <th>必须</th> <th>&lt;div style=&quot;width:400px&quot;&gt;说明&lt;/div&gt;</th> </tr> </thead> <tbody> <tr> <td>appId</td> <td>String</td> <td>是</td> <td>服务商分配的唯一标识</td> </tr> <tr> <td>timestamp</td> <td>Long</td> <td>是</td> <td>当前时间的毫秒数</td> </tr> <tr> <td>sign</td> <td>String</td> <td>是</td> <td>签名,详见签名算法说明</td> </tr> <tr> <td>pdfUrl</td> <td>String</td> <td>是</td> <td>可外网下载的文件URL地址</td> </tr> <tr> <td>watermarkImage</td> <td>String</td> <td>否</td> <td>水印图片,base64或图片url,若需要在转换后的pdf加上图片水印,传入该参数即可</td> </tr> <tr> <td>watermarkText</td> <td>String</td> <td>否</td> <td>水印文字,若需要在转换后的pdf加上文字水印,传入该参数即可</td> </tr> <tr> <td>fontName</td> <td>String</td> <td>否</td> <td>水印文字字体,直接传字体的中文名称。支持:宋体、黑体、微软雅黑。默认: 黑体</td> </tr> <tr> <td>fontSize</td> <td>Integer</td> <td>否</td> <td>水印文字字体大小,默认:20</td> </tr> <tr> <td>color</td> <td>String</td> <td>否</td> <td>水印文字颜色,16进制值,默认:#666666</td> </tr> <tr> <td>transparency</td> <td>Double</td> <td>否</td> <td>透明度,默认:0.4</td> </tr> <tr> <td>rotation</td> <td>Integer</td> <td>否</td> <td>内容旋转角度, 默认:0</td> </tr> <tr> <td>location</td> <td>String</td> <td>否</td> <td>位置,默认:LAY&lt;br&gt;LAY - 3 * 3 平铺&lt;br&gt;TOP_LEFT - 顶部居左&lt;br&gt;TOP_CENTER - 顶部居中 &lt;br&gt;TOP_RIGHT - 顶部局右&lt;br&gt;CENTER_LEFT - 中部居左&lt;br&gt;CENTER - 居中&lt;br&gt;CENTER_RIGHT - 中部局右&lt;br&gt;BOTTOM_LEFT - 底部居左 &lt;br&gt;BOTTOM_CENTER - 底部居中&lt;br&gt;BOTTOM_RIGHT - 底部局右</td> </tr> </tbody> </table> <p>&gt; watermarkImage和watermarkText至少传入一个 &gt; 同时传入图片水印和文字水印,则两个水印会重叠,无实际意义</p> <h3>签名算法说明</h3> <p><code>sign = sha256(appId + appSecret + timestamp)</code></p> <p>用服务商分配的 appId、服务商分配的 appSecret,当前时间毫秒数 timestamp,按上述顺序拼接成字符串,再进行 sha256 哈希得到。如下:</p> <pre><code class="language-java">String appId = &amp;quot;xyzxy2121zxyz&amp;quot;; String timestamp = &amp;quot;1555378976238&amp;quot;; String appSecret = &amp;quot;efcefcef1121cefcefc1212121&amp;quot;; String str = appId + appSecret + timestamp; String sign = sha256(str);</code></pre> <h3>成功返回样例</h3> <pre><code class="language-json">{ &amp;quot;code&amp;quot;: 200, &amp;quot;msg&amp;quot;: &amp;quot;成功&amp;quot;, &amp;quot;taskNo&amp;quot;: &amp;quot;41020892700032664119&amp;quot;, &amp;quot;charge&amp;quot;: true, &amp;quot;data&amp;quot;: { &amp;quot;targetUrl&amp;quot;: &amp;quot;&amp;quot;//加上水印后的pdf地址,有效期30天 } }</code></pre> <h3>失败返回样例</h3> <pre><code class="language-json">{ &amp;quot;msg&amp;quot;: &amp;quot;fileUrl不能为空&amp;quot;, &amp;quot;code&amp;quot;: 400 }</code></pre> <h3>返回字段说明</h3> <table> <thead> <tr> <th>字段名</th> <th>&lt;div style=&quot;width:400px&quot;&gt;说明&lt;/div&gt;</th> </tr> </thead> <tbody> <tr> <td>code</td> <td>返回码,详见code返回码说明</td> </tr> <tr> <td>msg</td> <td>code对应的描述</td> </tr> <tr> <td>charge</td> <td>是否计费</td> </tr> <tr> <td>taskNo</td> <td>本次请求号</td> </tr> <tr> <td>data</td> <td>返回具体结果,详见成功返回样例</td> </tr> </tbody> </table> <h3>code返回码说明</h3> <table> <thead> <tr> <th>code</th> <th>&lt;div style=&quot;width:400px&quot;&gt;说明&lt;/div&gt;</th> </tr> </thead> <tbody> <tr> <td>200</td> <td>成功(计费)</td> </tr> <tr> <td>400</td> <td>参数错误</td> </tr> <tr> <td>404</td> <td>请求地址不正确</td> </tr> <tr> <td>500</td> <td>服务商维护,请稍候再试</td> </tr> <tr> <td>601</td> <td>接口未开通</td> </tr> <tr> <td>602</td> <td>账号停用</td> </tr> <tr> <td>603</td> <td>余额不足请充值</td> </tr> <tr> <td>604</td> <td>接口停用</td> </tr> <tr> <td>607</td> <td>ip不在白名单</td> </tr> <tr> <td>609</td> <td>请求过于频繁,请稍候再试</td> </tr> <tr> <td>999</td> <td>其他,以实际返回为准</td> </tr> </tbody> </table>

页面列表

ITEM_HTML