我正在尝试使用webview和Xamarin项目打开一个pdf文件 我能够使用以下方法完成:
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
RequestWindowFeature(WindowFeatures.NoTitle);
SetContentView(Resource.Layout.ViewReport);
var mywebview = FindViewById<WebView>(Resource.Id.webView1);
var myurl= "http://docs.google.com/gview?embedded=true&url=http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_open_parameters.pdf";
mywebview.Settings.AllowFileAccess = true;
mywebview.Settings.JavaScriptEnabled = true;
mywebview.Settings.BuiltInZoomControls = true;
mywebview.LoadUrl(myurl);
mywebview.SetWebViewClient(new PodWebViewClient());
}
我的问题是我尝试打开的PDF文件是通过我的MVC项目中的Itextsharp创建的:
public ActionResult Print()
{
var document = new iTextSharp.text.Document(PageSize.A4, 50, 50, 25, 25);
var output = new MemoryStream();
var writer = PdfWriter.GetInstance(document, output);
document.Open();
string contents = System.IO.File.ReadAllText(Server.MapPath("~/Content/HTMTemplate/pdf_template.htm"), Encoding.Unicode);
//====================
// do something here...
//====================
FontFactory.Register(Server.MapPath("~/fonts/ARIALUNI.TTF"));
StyleSheet ST = new StyleSheet();
ST.LoadTagStyle(HtmlTags.BODY, HtmlTags.FACE, "Arial Unicode MS");
ST.LoadTagStyle(HtmlTags.BODY, HtmlTags.ENCODING, BaseFont.IDENTITY_H);
var parsedHtmlElements = HTMLWorker.ParseToList(new StringReader(contents), ST);
foreach (var htmlElement in parsedHtmlElements)
document.Add(htmlElement as IElement);
document.Close();
var cd = new System.Net.Mime.ContentDisposition
{
FileName = "samplepdf.pdf",
Inline = true
};
Response.AppendHeader("Content-Disposition", cd.ToString());//open in browser
return File(output.ToArray(), "application/pdf");
}
但是当我做了以下事情时:
var myurl= "http://docs.google.com/gview?embedded=true&url=http://www.sample.com/doc/print";
我看到一个带有html标签的文本文件,而不是我的pdf文件。
我该如何解决这个问题?我认为我的问题在于我的pdf文件,但我不知道是什么,因为我能够在浏览器中打开pdf ..希望你能帮助我。感谢。