매크로로 만든 PDF를 출력 시 출력물에 이상 발생
VBA
작성자
iviolin****
작성일
2022-09-05 20:44
조회
2038
회사에서 PDF를 F12(다른이름 저장하기)를 통해 파일형식을 PDF로 지정하여 모든 시트를 저장한 다음
저장한 모든 시트를 합치는 작업을 하고있습니다.
이 것을 메크로로 구현하고자 하여 PDF를 합치는 메크로를 어찌저찌 만들었습니다...
다만 메크로를 돌려 나온 PDF를 A4로 뽑으니 다양한 곳에 줄이 사라져 있습니다.
줄이 사라지는 곳은 랜덤인 것 같습니다.
F12를 통하여 만든 PDF는 출력물에서 선이 사라지는 현상은 없습니다.
항상 굵은 선은 제대로 나오는데 실선(저희 회사 양식에서는 점선을 아주 촘촘하게 하여 얇은 선 처럼 보이게 해놓았습니다)이 간혹 사라져있는 경우가 있습니다.
제가 회사에서 PDF를 합치기 위해 썼던 메크로 중 PDF와 연관된 메크로만 적어놓겠습니다
Set app = CreateObject("Acroexch.app") Set primaryDoc = CreateObject("AcroExch.PDDoc") '실제 파일에서는 해당 구문이 많이 반복되어 여러 PDF를 만듬 wkFile지수.Worksheets("총괄K").PrintOut Copies:=1, Collate:=True, _ ActivePrinter:=Application.ActivePrinter, PrintToFile:=True, PrToFileName:=ThisWorkbook.Path & "\PDF\Page" & PDF_Count & ".pdf" 'Combine_PDF라는 PDF를 합칠 파일을 지정함 Combine_PDF = ThisWorkbook.Path & "\PDF\" & Get_FileName OK = primaryDoc.Open(Combine_PDF) If Not OK Then MsgBox "표지 파일이 제대로 생성되었는지 확인해 주십시오." & Chr(13) & "표지 PDF를 생성하는 경로 확인 필요", vbExclamation + vbOKOnly, Title:="PDF 합치기 오류" Else 'PDF를 합칠 목록들을 순회하며 PDF를 합침. For FileIndex = 1 To UBound(Files) DoCounter = 0 Do DoEvents DoCounter = DoCounter + 1 Loop Until DoCounter = 5000 If Files(FileIndex) <> "" Then numPages = primaryDoc.GetNumPages() - 1 Set sourceDoc = CreateObject("AcroExch.PDDoc") OK = sourceDoc.Open(Files(FileIndex)) If Not OK Then MsgBox "Page " & FileIndex & "에서 오류가 발생하여" & Chr(13) & "PDF합치기 프로그램이 정상적으로 작동하지 않았습니다." & Chr(13) & "다시 시도해 주세요", vbExclamation + vbOKOnly, Title:="PDF 합치기 오류" Exit For End If numberOfPagesToInsert = sourceDoc.GetNumPages OK = primaryDoc.InsertPages(numPages, sourceDoc, 0, numberOfPagesToInsert, False) If Not OK Then MsgBox "Page " & FileIndex & "에서 오류가 발생하여" & Chr(13) & "PDF합치기 프로그램이 정상적으로 작동하지 않았습니다." & Chr(13) & "다시 시도해 주세요", vbExclamation + vbOKOnly, Title:="PDF 합치기 오류" Exit For End If OK = primaryDoc.Save(PDSaveFull, Combine_PDF) If Not OK Then MsgBox "Page " & FileIndex & "에서 오류가 발생하여" & Chr(13) & "PDF합치기 프로그램이 정상적으로 작동하지 않았습니다." & Chr(13) & "다시 시도해 주세요", vbExclamation + vbOKOnly, Title:="PDF 합치기 오류" Exit For End If Set sourceDoc = Nothing End If Next End If
그리고 PDF를 합치기 위해 사용하는 Printer를 해당 메크로를 통하여
Microsoft Print to PDF로 설정해둠
Dim myNet As Object Dim cPrint As Long Dim PrinterName As String: PrinterName = "Microsoft Print to PDF" Set myNet = CreateObject("WScript.Network") cPrint = myNet.enumprinterconnections.Count On Error Resume Next For i = 1 To cPrint Application.ActivePrinter = "Ne" & Format(i, "00") & ":에 있는 " & PrinterName If Application.ActivePrinter = "Ne" & Format(i, "00") & ":에 있는 " & PrinterName Then Exit For Next
회사의 보안때문에 제대로 된 파일을 올리지 못하는 점 죄송합니다.
다만 PDF를 만들 때 꼭 필요한 부분이다 싶은건 제대로 넣어놓겠습니다.
도움 부탁드립니다.
전체 18,462
번호 | 카테고리 | 제목 | 작성자 | 작성일 | 추천 | 조회 |
[📚진짜쓰는 실무엑셀] IT/오피스 '1위' 베스트셀러! 엑셀 공부, 이 교재로 마스터하세요! (313)
![]() ![]() |
![]() ![]() |
2022.02.03 | 572 | 599376 | ||
공지사항 | 문서서식 |
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐
(197)
오빠두엑셀
|
2021.10.28
|
추천 310
|
조회 34866
|
![]() ![]() |
2021.10.28 | 310 | 34866 |
78402 | 함수/공식 |
New 괄호안의 시간:분 데이터를 분으로 합산하는 방법 질문드립니다.
![]() ![]() ![]() |
![]() |
18:27 | - | 11 |
78400 | 함수/공식 |
New 2차배열에서 countif
![]() ![]() |
![]() |
17:58 | - | 16 |
78399 | 함수/공식 |
New 한달의 마지막주 스케쥴 작성시 전주까지의 휴무 누적 합계 구하는 방법이 궁금합니다.
![]() ![]() ![]() |
![]() |
17:50 | - | 14 |
78398 | VBA |
New VBA 매크로 여러 엑셀 파일에서 사용
![]() |
![]() |
17:02 | - | 20 |
78396 | 함수/공식 |
New 직원별로 근태 합계를 확인하고 싶어요
![]() ![]() |
![]() |
13:50 | - | 49 |
78395 | 함수/공식 |
New 특정 단어를 포함한 행 골라내는 방법에 대해 문의드립니다.
(3)
답변완료
![]() |
![]() |
13:36 | - | 30 |
78392 | 함수/공식 |
New 도와주세요... ( 특정값에 해당하는 반 번호 찾아 목록만들기)
![]() ![]() ![]() |
![]() |
13:02 | - | 27 |
78389 | 기능/도구 |
New 오빠두LIVE 196회 - 엑셀 프로젝트 관리 _ 일,주 바꾸는법
![]() ![]() |
![]() |
09:21 | - | 40 |
78387 | 함수/공식 |
New 엑셀 관련 질문입니다. SUM과 IFERROR 입니다 ㅠ
(6)
![]() |
![]() |
2025.04.27 | - | 86 |
78382 |
New Excel 추세선 이상
![]() ![]() |
![]() |
2025.04.27 | - | 64 | |
78381 | 함수/공식 |
New 같은 이름 N 번째 데이터
![]() ![]() ![]() |
![]() |
2025.04.27 | 1 | 97 |
78380 | 함수/공식 |
New On Error Resume Next 문구를 삽입하는 위치는?
(2)
![]() |
![]() |
2025.04.27 | - | 67 |
78376 | 함수/공식 |
New 지역별 증감금액 확인
![]() ![]() |
![]() |
2025.04.26 | - | 65 |
78374 | 함수/공식 |
New index를 활용한 조건에 맞는 금액을 찾는 방법
![]() ![]() ![]() |
![]() |
2025.04.26 | - | 78 |
78372 | 기능/도구 |
New 표서식 차이 문의
![]() ![]() |
![]() |
2025.04.25 | - | 55 |
78370 | 피벗테이블 |
New (피벗테이블) 2024년 2025년 판매 TOP10 비교데이터
![]() ![]() |
![]() |
2025.04.25 | - | 77 |
78369 | 구글시트 |
New 엑셀을 구글 시트와 연동하는 법
(1)
![]() |
![]() |
2025.04.25 | - | 60 |
78368 | 함수/공식 |
New 곱하기 계산시 0일때도 계산하고 싶습니다
![]() ![]() |
![]() |
2025.04.25 | - | 73 |
78366 |
New 엑셀 일정 범위 내 최대값 가져오기 함수식 문의 (조건 있음)
![]() ![]() |
![]() |
2025.04.25 | - | 54 | |
78358 |
New 파워포인트 글씨 굵게
(1)
![]() |
![]() |
2025.04.24 | - | 31 | |
78354 | 문서서식 |
New 구글스프레드시트 숨기기 질문이에요!
![]() ![]() |
![]() |
2025.04.24 | - | 54 |
78352 | 피벗테이블 |
New 여러 피벗테이블 하나의 슬라이서로 동작과 테이블간 관계 만들기 문의
![]() ![]() ![]() |
![]() |
2025.04.24 | - | 75 |
78347 | 대시보드 |
New 대시보드 결과 값끼리 열 비교하기
(4)
![]() ![]() |
![]() ![]() |
2025.04.24 | - | 69 |
78346 | 함수/공식 |
New 요일별 색상 구분
![]() ![]() |
![]() |
2025.04.24 | - | 79 |
78344 | VBA |
New 첫 셀에만 수식입력하면 열 전체가 자동으로 수식 적용되는 기능 푸는방법 문의
![]() ![]() |
![]() |
2025.04.24 | - | 103 |
78342 |
New 만년 달력 관련 도와주세요.ㅠㅠ
![]() |
![]() |
2025.04.24 | - | 50 | |
78341 | 함수/공식 |
New sumproduct 조건에 관해서
(1)
![]() |
![]() |
2025.04.24 | - | 79 |
78340 | 피벗테이블 |
New 다중영역 피벗테이블에서 영역을 표만들기로 적용하는 경우 오류발생, 원인을 모르겠습니다
![]() ![]() ![]() ![]() |
![]() ![]() |
2025.04.24 | - | 47 |
78339 | 함수/공식 |
New 엑셀이느려집니다 ㅠ 자동견적서만드는데 VLOOKUP을 너무많이써서그런가 원인좀 봐주세요
(2)
![]() |
![]() |
2025.04.24 | - | 86 |
78335 |
New 인쇄시 양식을 배경으로 깔 수 있을까요?
(1)
![]() |
![]() |
2025.04.24 | - | 34 |
@iviolin**** 님 이 방법으로 문제가 해결될지 모르겠지만.. 인쇄 방식을 .PrintOut 에서 ExportAsFixedFormat으로 바꿔보는건 어떨까요?
코드는 여기서 참고했씁니다
https://www.oppadu.com/엑셀-pdf-자동-저장-프로그램/
@엑셀은즐거워 님 아 제가 사족을 더 안붙였었네요...
참고로 PrintOut, ExprotAsFixedFormat 둘 다 해본 결과 똑같이 나왔었습니다. ㅠㅠ
@iviolin**** 님 엇.. 그런가요?
흠.. 인쇄하시기 전 화면 배율을 올리고 테스트해보면 어떨까요?
@엑셀은즐거워 님 회사의 정해진 양식대로 보고서를 프린트 해야하기에 결국 배율은 세팅된 대로 뽑아야하는데 배율을 조정하는건 의미가 없습니다ㅠㅠ
@iviolin**** 님 구글에서 비슷한 글들을 10분정도 찾아봤는데 pdf 변환할 때(?) 오류인 것 같습니다
https://www.mrexcel.com/board/threads/line-thickness-problem-when-printing-to-pdf.1160142/
https://answers.microsoft.com/en-us/msoffice/forum/all/excel-lines-are-printed-thicker/4c9c8747-0b9d-481a-bb53-34c8e462810e
혹시 배율 변경이 어렵다면 그림형태로 바꾸고 출력하거나 HTML 포맷으로 변환한 다음 출력해보는건 어떨까요?
설정문제라.. 잘 나올때까지 여러 방법을 테스트해보는 것 밖에는 없을 것 같네유..ㅠ