在新 window 中打开 I PDF 并在 Firefox 中打印

Open I PDF in a new window and print in Firefox

我正在使用 Vue3.js。我需要在新 window 中打开 PDF,然后打开打印对话框,但这仅适用于 MS Edge 和 Google Chrome,但不适用于 Firefox 或 Safari。

    const getBlobPdf = async (url: string) => {
      const response = await axios.get(url, { responseType: "blob" });
      return new Blob([response.data], { type: "application/pdf" });
    };

    const printPdf = async ({ url }) => {
      const blob = await getBlobPdf(url);
      window.open(URL.createObjectURL(blob), "_blank")?.print();
    };

我试过 window.focus(); window.print(); 但没用。

我找到了让它在 Firefox 和 Safari 上运行的方法。但是不知道有没有不用setTimeout()

的方法
const printPdf = async ({ url }) => {
      const blob = await getBlobPdf(url);
      const printWin = window.open(URL.createObjectURL(blob), "_blank");
      if (printWin) {
        setTimeout(() => {
          printWin.print();
        }, 200);
      }
    };