qq_17031883 2024-02-16 16:21 采纳率: 36.4%
浏览 22
已结题

js 通过url无法打印图片不知道什么原因

js 通过url无法打印图片不知道什么原因,url地址为‘/Files///Consultation/Image/C2024511600001/C2024511600001-I01.jpg’,
第三张图是直接双击打开的,图片地址是正确的,单独写个测试网页是可以打开的,可否推荐款打印js,包括能打印图片,文本,html

img


img


img

  • 写回答

24条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-02-16 16:21
    关注
    获得7.50元问题酬金

    引自免费微信小程序:皆我百晓生

    从提供的信息来看,您在尝试通过JavaScript使用print.js库打印图片,但似乎遇到了问题。根据printImg函数的内容和错误日志,以下是可能的问题及解决步骤:

    function printImg() {
      var url = "/Files///Consultation/Image/C2024511600001/C2024511600001-I01.jpg";
      printJs({
        printable: url,
        type: "image",
        imageStyle: "width:100%;height:100%;margin-bottom:0px;",
      });
    }
    

    问题分析:

    1. URL格式不正确:提供的URL中包含了多个连续的斜杠(/Files///...),虽然浏览器可能会自动修正,但在某些情况下这可能导致请求失败。请确保URL有效且指向正确的图片资源。

    2. 服务器端资源访问权限:如果该URL对应的图片资源在服务器端存在访问控制限制,例如需要认证或其他权限,那么即便URL正确,也可能无法加载图片并打印。

    3. print.js库处理异常:从提供的日志中有一条关键错误信息是“Uncaught TypeError: e[Symbol.iterator] is not a function”,这表明在调用print.js时,传递给它的参数或内部处理逻辑出现了问题。可能是由于print.js对传入的URL进行了迭代或其他操作,而这里的URL被误认为是一个可迭代对象,但实际上它不是。

    解决方法:

    • 确保图片URL正确无误,并且可以从当前上下文中正常访问。
    • 检查print.js版本是否与项目兼容,或者查看print.js文档以了解如何正确地打印图片资源。
    • 验证传递给printable属性的值是否符合print.js对于“type: 'image'”类型的预期格式。

    为了进一步排查,请按照以下步骤进行:

    1. 在浏览器开发者工具的网络面板(Network tab)检查图片加载情况,确认图片资源是否可以正常加载。
    2. 使用简单的HTML img标签来测试该URL是否能正常显示图片,如:
      <img src="/Files///Consultation/Image/C2024511600001/C2024511600001-I01.jpg" alt="Test Image">
      
    3. 检查print.js的相关代码片段以及其文档,确认是否有配置上的遗漏或错误。如果是库本身的问题,请考虑更新到最新稳定版或寻找替代方案。

    另外,请确认在调用printImg函数时,curImgUrl变量已经被正确赋值为期望的图片URL,这里代码里似乎没有初始化这个变量。如果curImgUrl是外部定义并用于存储图片URL,则应该这样修改:

    function printImg() {
      var url = curImgUrl; // 确保curImgUrl已正确赋值
      // ...
    }
    
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 2月24日
  • 修改了问题 2月16日
  • 修改了问题 2月16日
  • 创建了问题 2月16日