2013-10-28 2 views
1

.NET 4.5 System.IO.Compression.ZipArchive를 사용하여 ePub 아카이브를 생성하는 몇 가지 코드를 작성했습니다. 나는 이것을 휴대용 클래스 라이브러리 (Portable Class Library, PCL)의 일부로, .NET fx의 서브 세트를 사용하여 필요로한다.System.IO.Compression.ZipArchive를 사용하여 ePub을 만드는 방법은 무엇입니까?

나는 'application/epub + zip'이라는 마법을 담고있는 mimetype 파일에 문제가있다. 사양을 읽은 다음 압축없이 파일을 먼저 추가합니다.

이주의에도 불구하고 생성 된 ePub 아카이브는 사양을 준수하지 않습니다. 사양은 mimetype 파일의 내용을 위치 38에서 시작해야합니다. 광산은 위치 47에서 시작해야합니다.

ZipArchive 자체에는 매개 변수가 없으며 ZipArchiveEntry는 압축 모드에서만 매개 변수화 할 수 있습니다. 나는 Zip 파일이 하나의 다양성을 가지고 있다고 생각하기 때문에 약간 혼란스럽고이 특정한 행동에 어떤 영향을 주는지 이해하지 못한다.

참고로, 여기에 샘플을 ePub의 첫번째 비트 (즉 작업 임) 위치 : 압축을 설정하지 않은

enter image description here

답변

0

Nickolay의 조언에 따라 DotNetZip을 사용하여 MIME 유형 파일 만있는 아카이브를 만들고 다른 epub의 시작점으로 사용했습니다.

이 방법을 사용하면 ePub의 사양을 준수하면서 ZipArchive와 비동기 인터페이스를 사용할 수 있습니다.

2

여기

enter image description here

및하면 꺼야 메소드를 '압축 안함'으로 설정하십시오. 데이터의 바이트 9-10은 압축 방법을위한 것이며, 작업 파일의 경우 00이어야합니다. 그러나 사용자의 경우에는 8 - '수축'으로 설정됩니다. 압축 수준이 압축 방법이 아니며 0으로 설정하면 여전히 압축이 사용됩니다. SecureBlackbox 또는 DotNetZip과 같은 다른 라이브러리를 사용해보십시오.

+0

아! 답변 해주셔서 감사합니다! –