우리는 SSRS Enterprise가 없으며 VS2017에서이 모든 것을 개발하고 있습니다. SSRS 보고서가 서버에 업로드되어 완벽하게 작동합니다. URL을 IE에 복사/붙여 넣을 수 있으며 지정된 매개 변수를 사용하여 보고서를 실행하므로 URL이 정확하다고 생각합니다.
SQL Reporting Services 웹 페이지에서 내보내기를 클릭하고 PDF를 선택하면 PDF로 올바르게 저장됩니다. Excel과 마찬가지로 Excel로 올바르게 내 보냅니다.
SSIS를 통해 PDF를 만들려고하면 올바른 폴더에 올바른 파일 이름을 가진 파일이 만들어 지므로 좋아 보이지는 않습니다.
PDF를 열려고하면 손상된 것으로 다시 나타납니다.
내가 무언가를 찾았습니다 ( https://social.msdn.microsoft. com/포럼/sqlserver/en-US/6f750009-cd8e-4329-9d82-809c3c26795d/ssrs-pdf-export-the-error-an-error-opening-this-document-this-file-is-damaged-and- cand-not-be? forum = sqlreportingservices )는 일부 DLL에 대한 권한을 전체 액세스 권한으로 변경하고 읽기/쓰기가 아니라고 말하면서 domain \ Administrators가 두 가지에 대한 전체 액세스 권한을 갖도록 변경했습니다. DLL과 차이가 없었습니다
코드에 전달 된 URL은 다음과 같습니다. http : // XXXX/Reports/report/ScheduledReports/WeeklySalesInvoiced_PDF? StartDate = 07 % 2F08 % 2F2019&EndDate = 07 % 2F12 % 2F2019&TerritoryID = 101&rs : Command = Render&rs : Format = PDF
PDF를 작성하는 코드는 다음과 같습니다.
Protected Sub SaveFile(ByVal url As String, ByVal localpath As String)
Dim loRequest As System.Net.HttpWebRequest
Dim loResponse As System.Net.HttpWebResponse
Dim loResponseStream As System.IO.Stream
Dim loFileStream As New System.IO.FileStream(localpath, System.IO.FileMode.CreateNew, System.IO.FileAccess.Write)
Dim laBytes(256) As Byte
Dim liCount As Integer = 1
Try
loRequest = CType(System.Net.WebRequest.Create(url), System.Net.HttpWebRequest)
loRequest.Credentials = System.Net.CredentialCache.DefaultCredentials
loRequest.Timeout = 600000
loRequest.Method = "GET"
loResponse = CType(loRequest.GetResponse, System.Net.HttpWebResponse)
loResponseStream = loResponse.GetResponseStream
Do While liCount > 0
liCount = loResponseStream.Read(laBytes, 0, 256)
loFileStream.Write(laBytes, 0, liCount)
Loop
loFileStream.Flush()
loFileStream.Close()
Catch ex As Exception
End Try
End Sub
notepad ++에서 PDF를 열면 이것이보고있는 것입니다 (보고서에있는 것과는 다릅니다) :
<!DOCTYPE html>
<html id="portal" ng-controller="MainController as main" lang="{{main.getLanguage()}}" ng-class="{'flex':main.needsCssFlex}" ng-strict-di resizer>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=ed
파일을 Excel로 저장하려고했는데 결과가 똑 같았습니다. 파일이 손상되어 Excel에서 어쨌든 열도록 요청합니다. 예라고 말하면 PDF에있는 것과 동일한 내용이 표시됩니다
- 답변 # 1
관련 자료
- java - arraysaslist에서 get ()을 사용할 때 npe - 명부
- php - mysqli에 변수가있을 때 mysqli에서 에코하는 방법
- javascript - pdf (windowprint에서)를 JS var에 저장하십시오
- python - 텍스트 파일에서 URL을 열 때 오류
- javascript - HTML 요소에서 PDF 작성
- coffeescript for-loops에서 "from", "of"또는 "in"을 사용하는 경우
- javascript - pdf 파일에서 주석 읽기
- android - 백그라운드 위젯에서 앱을 종료하면 중지됩니다
- python - Pi의 센서 데이터를 CSV 파일로 저장
- android - 내 웹 사이트에서 내 앱으로 pdf를 다운로드하고 pdf는 내 앱에만 표시됩니다
- c# - 바이트에서 PDF 파일 다운로드 []
- php - // input에서 원시 데이터를 파일로 저장 하시겠습니까?
- SAP RFC의 PDF를 C #으로 표시하는 방법
- python - PDF에서 이메일을 추출하는 방법
- groovy - PDF에서 텍스트로 NiFi 추출
- javascript - requestget ()에서 본문 저장
- git - 태그에서 분기를 작성하는시기
- php - MySQL의 BLOB에서 pdf 컨텐츠 읽기
- python - 데이터를 얻으십시오 - 이전에 키를 모르는 경우 결정하십시오
- laravel 5 - Ajax 응답에서 PDF를 여는 방법
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- JavaScript 변수를 HTML div에 '출력'하는 방법
- python - 문자열에서 특정 문자 제거
기본 SSRS 설치를 가정하면 http : // server/Reports로 이동하여 다음과 같습니다.
이것은 사용자가 SSRS를 관리 할 수있는 웹 포털입니다.
SSRS와 관련된 두 번째 사이트가 있으며 이것이 "실제"작업을 처리 할 때 지적해야하는 사이트입니다 http : // server/ReportServer
ReportServer 위치를 사용하여 URL을 다시 빌드하면 실행 가능한 PDF/Excel 문서를 얻게 될 것 같습니다. 현재 웹 포털에서 래퍼 페이지를 다운로드하고 있습니다.