2013-03-05 1 views
1

저는 오늘 아침 Excel에서 간략히 작성한 도구로 작업하기 위해 전화를 받았습니다. 이 도구는 보고서를 생성 한 다음 pdf로 인쇄합니다. 그들이 나를 불렀던 문제는 한 사용자의 경우 PDF의 줄 간격이 꺼져 있다는 것이 었습니다. 문제의 원인을 알아내는 데는 시간이 걸렸습니다. 그것은 DPI였습니다. 글꼴을 보는데 어려움을 겪고있는 사용자는 Windows의 글꼴을 150 %까지 늘렸고 어떤 이유로 pdf로 다르게 내보낼 수 있습니다.맞춤 DPI에 따라 Excel에서 PDF로 인쇄가 달라집니다.

문제점은 무엇인지 알고 있지만 사용자에게 강제로 DPI (로그 오프하도록 함)를 요청하고 다시 로그인하고 엑셀을 열고 매크로를 실행 한 다음 DPI를 다시 변경하는 것이 합리적인 해결책이 아닙니다. 해결책을 찾는데 도움이 될 수있는 전문가가 있기를 바랍니다. 프로그램이 실행되는 동안 일시적으로 DPI를 변경하기 위해 VBA 코드를 추가하는 것은 신경 쓰지 않지만 가능한 경우 또는 그렇게 할 수 있는지 확실하지 않습니다.

감사

더 명확한 설명을 위해

의 Windows 7 및 당신이 "텍스트 및 기타 항목 크거나 작게 만들기"것인지 묻는 링크가 해상도를 변경 가면 내가 말하고있어 측면이다 . 슬라이더가 기본 100 %에서 150 %로 변경되었습니다.

답변

1

나는이 문제를 극복하기위한 쉬운 방법을 생각할 수 없다. 당신이 시도 할 수있는 일은 Excel을 내부적으로 사용하여 파일을 열고 PDF로 내보내는 OLE 응용 프로그램 (예 : C#, VB.NET 또는 C++)을 만드는 것입니다. 그런 다음 시스템에 새로운 사용자를 생성하고 runas 명령을 사용하여 배치 파일에서이 응용 프로그램을 점심을 먹을 수 있습니다. Excel에서 다시 돌아 오면 Shell 명령을 사용하여 배치 파일을 점심을 먹을 수 있습니다.
워크 플로는 다음과 같습니다.

1- VBA 및 셸 함수를 사용하여 현재 파일을 매개 변수로 사용하여 Excel에서 배치 파일을 호출합니다.
2- 배치 파일은 runas를 사용하여 사용자 지정 응용 프로그램 MyAppExportToPDF를 호출하고 현재 Excel 파일을 매개 변수로 전달합니다.
3 MyAppExportToPDF는 OLE를 사용하여 Excel의 새 인스턴스를 열고 파일을로드 한 다음 PDF로 내 보냅니다.

MyAppExportToPDF가 다른 사용자에서 실행되므로 새 Excel 인스턴스도 해당 사용자로 실행해야합니다. 이 사용자의 DPI 설정이 필요한 설정이어야합니다.

면책 사항 : 이는 테스트되지 않은 아이디어 일뿐입니다.

+0

당신의 방법은 내가 볼 수있는 것에서부터 효과가 있었지만 내 사용자를 위해 구현할 수 없었기 때문에 파일을 엑셀 밖에서 아무것도 원하지 않았습니다. 파일은 여러 사용자간에 앞뒤로 보내졌으며 여러 번 보내지 않았습니다. 파일). 나는 그들을 다르게 납득 시키려고 노력했다. 그러나 그것은 내가 excel에서 그것을 고친다거나, 받아 들여지는 결함이어야 할 것 인 것처럼 보인다. – Tolure