안녕하세요. 박용준 강사입니다.
조재문 님도 새해 복 많이 받으세요.
감사합니다.
우선, 제가 웹 쪽 일을 하면서도
가장 어려워하는 부분이
Reporting 부분입니다.
Telerik Reporting, SSRS, Power BI 등에 대한 사용하는 솔루션을 곁에서 지켜만 봤을 뿐,
이 파트는 제가 할 일이 아니다라는 생각에
인쇄쪽은 현재까지는 사용을 미루고 있는 부분입니다.
"인쇄는 이렇게 하는거다."라는 경우의 수가 딱 정해져 있으면 그 방법을 따라가겠지만,
제가 접한 회사들은 대부분, 상용 컴포넌트를 사용하다보니,
강의용으로 사용할 수 있는 공통 요소가 너무 적어
제 강의 능력을 벗어나는 영역으로 남겨두었습니다.
결론적으로, 질문하신 내용에 대한 조언드릴만한 경험이 없어 답변을 해드리지 못합니다.
다만, 인쇄 창 출력 및 인쇄가 잘 되는 부분에 추가적으로 인쇄 전의 화면으로 돌아가고자 한다면,
또 다른 자바스크립트 코드(location.href) 또는 NavigationManager를 통해서
직접 인쇄 끝나는 지점에 리디렉션 시키는 건 어떨까 하는 정도만 답변일 될 듯 합니다.
아니면, Blazor 페이지가 아닌 MVC 또는 일반적인 웹 페이지를 Blazor에서 링크로 띄우고 그쪽에서 실행하는 것도 하나의 방법이 될 수도 있겠구요.
어쨌든,
오늘 질문주신 부분은
제 경험이 부족하여 특별히 도움이 되어 드리지 못한 점 죄송합니다.
제가 준비한 강의 외적으로 벗어나는 부분은
구글링 또는 추가적인 개발자 커뮤니티의 도움을 받으셔도 좋을 것 같습니다.
감사합니다.
On 2021-02-13 오전 12:22:00, '조재문' wrote:
명절 잘 보셨습니까?
지난번 질문에 대한 상세하신 답변에 감사드립니다.
또 질문 하나 드려도 될는지요?
Blazor에서 인쇄는 어떻게 하는지요?
_Host.cshtml 에서 @@media와 script로 제어를 하고 있습니다만
인쇄 후에는 인쇄전 화면이 나오지 않습니다.
Blazor에서 쉽게 할 수 있는 인쇄방법은 없는지요?
현재 제가 사용 하는 방법
*.razor
// 인쇄하기
private async void PrintNow()
{
bool v = await JSRuntimeInjector.InvokeAsync<bool>("printwindow", null);
if (v == true)
{
}
}
_Host.cshtml
window.printwindow = () => {
setTimeout(function () {
window.onbeforeprint = beforePrint;
window.onafterprint = afterPrint;
window.print();
//window.history.back(-1);
}, 200);
return true;
}
@@media print {
body {
margin-top: 100px;
margin-left: 40px;
text-align: center;
width: 900px;
}
#div_page {
width: 900px;
}
.tblList td, .tblList th {
text-align: center;
vertical-align: middle;
}
/*검도 셀 높이*/
.kemdo tr td {
height: 36px;
}
.tdBtn {
display: none;
}
.tbl_foot {
text-align: center;
letter-spacing: 5px;
word-spacing: 5px;
font-size: 22px;
}
.footSubDay {
margin: 20px;
}
.footSubChair {
padding-left: 400px;
}
.footSubLast {
font-size: 25px;
font-weight: bold;
text-align: left;
margin-top: 10px;
margin-left: 50px;
}
}
</style>