Код: Выделить всё
import { PrintReport } from "@/views/app/Anbar/Input/print.js";
Код: Выделить всё
const print_data = computed(() => {
if (store.state.tradeModule.anbar_print) {
if (store.state.tradeModule.anbar_print.master) {
if (store.state.tradeModule.anbar_print.master[0]) {
PrintReport(store.state.tradeModule.anbar_print);
}
}
}
return store.state.tradeModule.anbar_print;
});
Код: Выделить всё
import PersianDate from "persian-date";
import { PrintCss } from "@/composables/PrintReport.js";
import { setNumber } from "@/components/base/mixins.js";
import { htmlContent } from "@/views/app/Anbar/Input/print_html.js";
export const PrintReport = (data) => {
const date = new Date();
const jalal = new PersianDate();
const url = new URL(location.origin + '/printable.html');
const win = window.open(url);
const title = "نمایش و چاپ ورودی انبار"
let matn = data.master[0].Matn
if(data.master[0].Matn===null || data.master[0].Matn===undefined || data.master[0].Matn.length===0){
matn = data.master[0].TypeHamlName
} else {
matn = data.master[0].TypeHamlName + ' | ' + data.master[0].Matn
}
let htmlFileText = String(htmlContent)
.replace(/@PreFactor.Company/g, data.master[0].TypeName)
.replace(/@PreFactor.PrintHeader/g, data.master[0].EventName)
.replace(/@PeopleName/g, data.master[0].PeopleUserName)
.replace(/@value_PrintDate/g, jalal.rangeName().weekdays[jalal.State.persianAstro.weekday-1]+':'+jalal.year()+'/'+jalal.month()+'/'+jalal.date() +" ("+date.getHours()+':'+date.getMinutes()+")")
.replace(/@ErsaliAz/g, data.master[0].PeopleName)
.replace(/@Daryafi/g, data.master[0].AnbarListName)
.replace(/@DateAnbar/g, data.master[0].DateAnbar)
.replace(/@Serial/g, data.master[0].Id)
.replace(/@value_matn_master/g, matn)
.replace(/@report_rows/g, print_data(data.list))
win.document.write(`
${title}
${PrintCss}
${htmlFileText}
`);
}
const print_data = (mores) => {
let result = ""
mores.forEach((dr, index) => {
result +=`
[b]${index+1}[/b]
[b]${dr.KalaName}[/b]
[b]${setNumber(dr.inPut)}[/b]
[b]${dr.StateName}[/b]
[b]${dr.TypePackageName }[/b]
[b]${setNumber(dr.PackageCount)}[/b]
`
if (dr.Matn && dr.Matn.length>0){
result +=`
${dr.Matn}
`
}
})
return result
}
* * htmlContent — это строка в чистом формате HTML, которая форматирует окончательную работу.
Проблема:
при использовании #Android OS и # google_chrome, я открываю ту же страницу и нажимаю значок печати, открывается новая страница, а затем я пытаюсь печатать с помощью обычных приложений для печати, таких как NokoPrint, PrinterSharen, но это невозможно.
Точка:
Я могу печатать родительская страница, но не всплывающая страница, разница, которую я заметил, заключается в том, что родительская страница имеет действительный URL-адрес, но страница печати имеет URL-адрес «about:blank», и, как я обнаружил, приложения пытаются загрузить страницу по своему внутренний браузер и не получают контент с текущей страницы, поэтому они могут распечатать.
Даже я пытался загрузить веб-сайт внутри NokoPrint, но всплывающая страница игнорируется или блокируется.
Вы практиковали такую ситуацию?
Есть ли у вас подобный опыт?
Как отправить распечатку на Android+chrome, можете помочь?
Подробнее здесь: https://stackoverflow.com/questions/792 ... me-browser
Мобильная версия