질문 전:
얼마 전 어떤 이유로 잠시 이곳을 떠났는데, 이 기간 동안 BLOG에서 자동으로 응답하지 않는 이메일을 받았습니다. 여전히 많은 사람들이 저를 팔로우하고 제가 게시한 기사에 관심을 갖고 있다는 것을 알게 되었습니다. 전에 쓴 글인데, 아직도 여기 있을 수가 없어요. BLOGJAVA를 떠나는 것도 견딜 수 없어요. 친구들이여, 얘기 좀 합시다... 당신이 있을지 모르겠어요. 괜찮아.
오늘 이렇게 글을 쓰고 있습니다.. 며칠전에 단어 보고서를 인쇄했는데, 보고서 인쇄 시 여러 테이블을 연결해 달라고 요청했는데, 페이지 변경이 필요한 경우 각 테이블의 헤더가 계속 표시될 수 있었습니다.
후자의 요구 사항은 상대적으로 구현하기 쉽습니다. Word에는 "페이지를 변경할 때 각 테이블의 머리글이 계속 표시될 수 있습니다."라는 전제가 있습니다. 이는 내 고객의 요구 사항 중 하나이기도 합니다.
그러나 여러 테이블을 함께 연결하면 인쇄 시 위쪽 테이블과 아래쪽 테이블이 아무리 가까워도 매우 가까운 두 개의 선이 표시되어 고객의 요구 사항을 충족하지 못하고 아름답지 않습니다.
나중에 이 방법을 생각하게 되었는데, 이전 테이블의 마지막 행에서 아래쪽 선을 제거하여 위쪽 테이블과 아래쪽 테이블 사이에 한 줄만 남게 되었습니다. 아직 중앙에 약간의 공간이 남아있지만, 고객께서는 그것에 매우 만족합니다.
이렇게 하는 데 버그가 있습니다. 테이블 A가 정확히 한 페이지이고 다음 페이지가 다른 테이블인 경우 인쇄할 때 테이블 A의 마지막 행이 없습니다. 정말 보기 흉합니다. 그리고 그것은 테이블이 아닙니다.
해결책: 먼저 매크로라는 단어를 사용하여 표의 맨 아래 줄을 그리는 방법을 확인하고 자바스크립트로 인쇄할 때 한 표의 마지막 행과 다음 표의 첫 번째 행이 일치하는지 확인합니다. 같은 페이지에 한 페이지에 없으면 이전 테이블이 줄 아래에 추가됩니다.
판단방법은 다음과 같습니다.
함수 페이지(table1,row1,table2,row2){
myDoc.Tables(table1).Rows(row1).Select();
var page=wordApp.Selection.Information(3);
myDoc.Tables(table2).Rows(row2).Select();
var page1=wordApp.Selection.Information(3);
if(페이지1>페이지)
myDoc.Tables(table1).Borders.OutsideLineStyle=1;
}
서빙하기가 매우 어려웠던 고객은 인쇄된 보고서를 읽고 마침내 미소를 지었습니다. 며칠간의 노력은 결코 헛되지 않았습니다.