온라인 미리 보기 PDF 를 실현 하 는 몇 가지 해결 방법 에 대하 여 말씀 드 리 겠 습 니 다.
1.온라인 으로 미리 보 기 를 실현 하 는 방식
처음에 저 는 이런 방식 을 사용 하 는 경향 이 있 었 습 니 다.비교적 좋 은 JS 플러그 인 방식 으로 PDF 의 온라인 미리 보기(웹 미리 보기)를 실현 하고 싶 었 습 니 다.그래서 Github 에서 순위 가 비교적 높 은 PDF 플러그 인 을 찾 았 습 니 다.
순위 가 높 은 것 을 보면 사용 하 는 것 이 좋 을 것 같 습 니 다.가 져 온 PDF 파일 을 보면 효과 가 좋 습 니 다.
그러나 고객 의 요 구 는 정상 적 인 영수증 PDF 파일 을 표시 하고 파일 주 소 를 바 꾸 는 것 입 니 다.일부 정 보 는 표시 되 지 않 습 니 다.해결 방법 을 보지 못 해서 효과 가 기준 에 미 치지 못 했 습 니 다.
기본 영수증 도 표시 되 지 않 으 면 영수증 PDF 파일 을 표시 할 수 없습니다.
마지막 으로 PDFObject(https://pdfobject.com/)를 사용 하여 온라인 으로 PDF 디 스 플레이 를 삽입 하 는 방식 을 테스트 했 습 니 다.이 JS 플러그 인 도 괜 찮 습 니 다.GitHub 에서 도 찾 을 수 있 습 니 다.
그것 의 사용 도 매우 간단 하 다.아래 코드 와 같다.
미리 보기 창의 크기 를 설정 하려 면 스타일 을 설정 하면 됩 니 다.
<style>
.pdfobject-container { height: 500px;}
.pdfobject { border: 1px solid #666; }
</style>
표시 효 과 는 정상 이 었 지만 애플 폰 에서 Safari 브 라 우 저 를 켜 보 니 제대로 표시 되 지 않 았 습 니 다.
따라서 미리 보기 표시 에 도 사용 할 수 없습니다.
실제 테스트 에서 안 드 로 이 드 폰 의 브 라 우 저 는 미리 보기 PDF 에 대해 서도 지원 이 다 르 고,일 부 는 직접 PDF 를 다운로드 하 며 미리 보기 표 시 를 지원 하지 않 는 것 으로 나 타 났 다.
이러한 문 제 를 피하 기 위해 서 는 PDF 를 그림 으로 변환 하여 표시 하 는 절 충 된 방안 을 찾 는 것 이 좋 습 니 다.그림 은 서로 다른 브 라 우 저 에 표시 되 지만 문제 가 없습니다.
2,PDF 변환 그림 표시
PDF 를 그림 으로 바 꾸 는 것 도 많은 컨트롤 처리 가 있 습 니 다.예 를 들 어 Aspose.Pdf,Spire.Pdf,Pdfiumviewer 등 은 서로 다른 제3자 라 이브 러 리 에서 사용 하 는 방법 에 차이 가 있 지만 사고 방향 은 모두 비슷 합 니 다.
원래 Aspose.Pdf 를 사용 하 는 경향 이 있 었 으 나,변 경 된 영수증 정보 가 일부 중국어 문자 나 코드 가 부족 하여 정상적으로 표시 되 지 않 는 것 을 발견 하 였 다.
나중에 Spire.Pdf 버 전과 해당 하 는 녹색 버 전 을 찾 아 정확 한 형식 으로 바 꿀 수 있 었 기 때문에 이 제3자 컨트롤 을 사용 하여 그림 을 바 꾸 었 습 니 다.
온라인 미리 보기 에 대해 서 는 PDF 미리 보기 파일 을 처음 요청 할 때 해당 하 는 그림 파일 을 만 들 고 그 다음 에 바로 경 로 를 되 돌려 주면 됩 니 다.
실 현 된 미리 보기 효 과 는 다음 과 같다.
asp.net MVC 프로젝트 에 표 시 된 것 이기 때문에 컨트롤 러 의 처리 논 리 를 수정 하고 그림 의 생 성 을 판단 처리 하면 됩 니 다.
컨트롤 러 백 엔 드 의 실현 코드 는 다음 과 같다.
// PDF ,
// jpg ID
string pdfjpgPath = string.Format("/GenerateFiles/pdf/{0}.jpg", info.ID);
string pdfjpg = Server.MapPath(pdfjpgPath);
//PDF ,
string pdfPath = @"/Content/Template/fapiao.pdf";
string pdfRealPath = Server.MapPath(pdfPath);
// , ,
if(!FileUtil.IsExistFile(pdfjpg))
{
//
ModifyInMemory_Spire.ActivateMemoryPatching();
PdfDocument doc = new PdfDocument(pdfRealPath);
var image = doc.SaveAsImage(0, Spire.Pdf.Graphics.PdfImageType.Bitmap, 300, 300);
FileUtil.BytesToFile(ImageHelper.ImageToBytes(image), pdfjpg);
}
//
info.SavePath = pdfjpgPath;//
마지막 으로 해당 하 는 제 이 슨 정 보 를 되 돌려 주시 면 됩 니 다.
//
string result = JsonConvert.SerializeObject(info, Formatting.Indented);
return Content(result);
우 리 는 페이지 보기에 서 ajax 요청 처 리 를 통 해 그림 의 동적 표 시 를 실현 할 수 있 습 니 다.
//
var ID = '';
function Refresh() {
var filename = $("#WHC_FileName").val();
// PDF ,
$.getJSON("/PdfView/FindByFileName?r=" + Math.random() + "&name=" + filename, function (info) {
if (info != '') {
// ,
$("#imgfapiao").attr("src", info.SavePath);
}
});
}
마지막 으로 그림 의 미리 보 기 를 실현 했다.위 는 바로 제 해결 방향 입 니 다.만약 에 PDF 온라인 미리 보기 문 제 를 해결 하 는 더 좋 은 방법 이 있다 면 서로 교류 하 는 것 을 환영 합 니 다.여러분 께 참고 가 되 셨 으 면 좋 겠 고 많은 응원 부 탁 드 리 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Vue 온라인 미리 보기 pdf 파일 기능 구현(pdf.js/iframe/embed 이용)최근 에 우수한 과정 을 만 들 고 있 습 니 다.온라인 미리 보기 과제 ppt 가 필요 합 니 다.우리 의 생각 은 ppt 를 pdf 온라인 미리 보기 로 바 꾸 는 것 입 니 다.그래서 문 제 는 온라인 미리 보...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.