Hãy nhớ rằng các tệp .djvu ít phổ biến hơn các định dạng tương tự như EPUB, MOBI, PDF và các định dạng tệp eBook khác, tôi sẽ có cách tiếp cận sau để khắc phục sự cố.
1) Tạo một dịch vụ Web để chuyển đổi các file djvu sang pdf cũ .: http://example.com/djvuToPdf/djvuFile/outputFile
2) Đọc các tập tin PDF trong UIWebView
Để tạo một Web Service tôi sẽ giả định rằng bạn có quyền truy cập vào bất kỳ máy chủ phân phối Linux nào, trong trường hợp của tôi là Ubuntu 16.04.
Bước một: Cài đặt DjVuLibre sudo apt-get install djvulibre-bin ghostscript
Bước hai: chạy thử nghiệm $ djvups inputFile.djvu | ps2pdf - outputFile.pdf
. Bạn cũng có thể sử dụng lệnh ddjvu
. Tuy nhiên, các tệp được chuyển đổi với lệnh ddjvu
là lớn hơn 10x so với lệnh djvups
. Bạn sẽ muốn xem xét sử dụng --help
khám phá các cài đặt như mode
, quality
và cứ tiếp tục như vậy.
Bước ba: Tạo một Web Service (để giữ cho mọi thứ đơn giản, tôi sử dụng PHP, sử dụng bất cứ điều gì một cách thuận tiện [Python golang])
<?php
$inputFile = $_GET['input_file'];
$outputFile = $_GET['output_file'];
// use shell exec to execute the command
// keep in mind that the conversion takes quite a long time
shell_exec(sprintf("djvups %s | ps2pdf - %s", $inputFile, $outputFile));
$name = $outputFile;
//file_get_contents is standard function
$content = file_get_contents($name);
header('Content-Type: application/pdf');
header('Content-Length: '.strlen($content));
header('Content-disposition: inline; filename="' . $name . '"');
header('Cache-Control: public, must-revalidate, max-age=0');
header('Pragma: public');
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
echo $content;
?>
chung kết Bước: tải PDF trong App
Như Apple khuyên, hãy xem xét sử dụng WKWebView thay cho UIWebView.
if let pdfURL = Bundle.main.url(forResource: "pdfFile", withExtension: "pdf", subdirectory: nil, localization: nil) {
do {
let data = try Data(contentsOf: pdfURL)
let webView = WKWebView(frame: CGRect(x:20,y:20,width:view.frame.size.width-40, height:view.frame.size.height-40))
webView.load(data, mimeType: "application/pdf", characterEncodingName:"", baseURL: pdfURL.deletingLastPathComponent())
view.addSubview(webView)
}
catch {
// catch errors here
}
}
bạn có thể chuyển đổi tệp djvu thành pdf rồi tải trong chế độ xem web. –
Tôi đã thử như cũ. Nhưng không thể tìm thấy bất kỳ giải pháp để tập tin djvu conver vào tập tin pdf. Bạn có thể giúp đỡ không? –
bạn có thể chuyển đổi chúng trực tuyến và tải lên trên máy chủ lưu trữ của bạn. http://djvu2pdf.com/ –