public override void OnLayoutFinished(PrintDocumentInfo info, bool changed) { //using (var _dir = Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDocuments)) using (var _dir = Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDownloads)) { if (!_dir.Exists()) { _dir.Mkdir(); } // var path = _dir.Path + "/" + FileName + ".pdf"; var path = System.IO.Path.Combine(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath, Android.OS.Environment.DirectoryDownloads, FileName + ".pdf"); var file = new Java.IO.File(path); int iter = 0; while (file.Exists()) { file.Dispose(); iter++; //path = _dir.Path + "/" + FileName + "_" + iter.ToString("D3") + ".pdf"; path = System.IO.Path.Combine(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath, Android.OS.Environment.DirectoryDownloads, FileName + "_" + iter.ToString("D3") + ".pdf"); file = new Java.IO.File(path); } file.CreateNewFile(); var fileDescriptor = ParcelFileDescriptor.Open(file, ParcelFileMode.ReadWrite); file.Dispose(); var writeResultCallback = new PdfWriteResultCallback(TaskCompletionSource, path); Adapter.OnWrite(new Android.Print.PageRange[] { PageRange.AllPages }, fileDescriptor, new CancellationSignal(), writeResultCallback); } base.OnLayoutFinished(info, changed); }
public override void OnLayoutFinished(PrintDocumentInfo info, bool changed) { File sdf = Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDownloads); ParcelFileDescriptor fileDescriptor = GetOutputFile(sdf, "SMV_Report"); printDocumentAdapter.OnWrite(new PageRange[] { PageRange.AllPages }, fileDescriptor, new CancellationSignal(), new MyWriteResultCallbackt(JNIEnv.Handle, JniHandleOwnership.DoNotRegister)); base.OnLayoutFinished(info, changed); }
public void OnLayoutFinished(PrintDocumentInfo p0, bool p1) { var cacheFolder = PdfPrintCacheHelper.PrepareCacheFolder(); var pdfFile = new FileInfo(Path.Combine(cacheFolder.FullName, pdfFileName)); pdfFile.Delete(); PrintHelper.Write( printDocumentAdapter, new PageRange[] { PageRange.AllPages }, pdfFile.FullName, new CancellationSignal(), new PrintWriteCallback(pdfFile.FullName, this)); }
public override void OnLayoutFinished(PrintDocumentInfo info, bool changed) { try { var file = new Java.IO.File(PDFToHtml.FilePath); var fileDescriptor = ParcelFileDescriptor.Open(file, ParcelFileMode.ReadWrite); var writeResultCallback = new PdfWriteResultCallback(PDFToHtml); Adapter.OnWrite(new PageRange[] { PageRange.AllPages }, fileDescriptor, new CancellationSignal(), writeResultCallback); } catch { PDFToHtml.Status = PDFEnum.Failed; } base.OnLayoutFinished(info, changed); }
public override void OnLayoutFinished(PrintDocumentInfo info, bool changed) { //using (var _dir = Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDocuments)) //using (var _dir = Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDownloads)) //using (var _dir = Forms9Patch.Droid.Settings.Context.FilesDir) using (var _dir = Forms9Patch.Droid.Settings.Context.CacheDir) { if (!_dir.Exists()) { _dir.Mkdir(); } // var path = _dir.Path + "/" + FileName + ".pdf"; //var path = System.IO.Path.Combine(_dir.AbsolutePath, Android.OS.Environment.DirectoryDownloads, FileName + ".pdf"); //var file = new Java.IO.File(path); /* * var file = new Java.IO.File(_dir, FileName + ".pdf"); * int iter = 0; * while (file.Exists()) * { * file.Dispose(); * iter++; * //path = _dir.Path + "/" + FileName + "_" + iter.ToString("D3") + ".pdf"; * //path = System.IO.Path.Combine(_dir.AbsolutePath, Android.OS.Environment.DirectoryDownloads, FileName + "_" + iter.ToString("D4") + ".pdf"); * //file = new Java.IO.File(path); * file = new Java.IO.File(_dir, FileName + "_" + iter.ToString("D3") + ".pdf"); * } * * * //file.CreateNewFile(); */ var file = Java.IO.File.CreateTempFile(FileName + ".", ".pdf", _dir); var fileDescriptor = ParcelFileDescriptor.Open(file, ParcelFileMode.ReadWrite); var writeResultCallback = new PdfWriteResultCallback(TaskCompletionSource, file.AbsolutePath); Adapter.OnWrite(new Android.Print.PageRange[] { PageRange.AllPages }, fileDescriptor, new CancellationSignal(), writeResultCallback); file.Dispose(); //Android.Media.MediaScannerConnection.ScanFile(Forms9Patch.Droid.Settings.Context, new string[] { file.AbsolutePath }, new string[] { "application/pdf" }, null); //Android.Media.MediaScannerConnection.ScanFile(file.AbsolutePath, "application/pdf"); } base.OnLayoutFinished(info, changed); }
/// <summary> /// /// </summary> /// <param name="oldAttributes"></param> /// <param name="newAttributes"></param> /// <param name="cancellationSignal"></param> /// <param name="callback"></param> /// <param name="extras"></param> public override void OnLayout(PrintAttributes oldAttributes, PrintAttributes newAttributes, CancellationSignal cancellationSignal, LayoutResultCallback callback, Bundle extras) { if (cancellationSignal.IsCanceled) { callback.OnLayoutCancelled(); return; } using (PrintDocumentInfo.Builder builder = new PrintDocumentInfo.Builder(FileToPrint)) { //using ( PrintDocumentInfo pdi = builder.SetContentType(ContentType).Build(); //) { callback.OnLayoutFinished(pdi, true); } } }