void InitModularSearchViewAndButton() { // The search result highlighter will highlight any selected result. highlighter = new SearchResultHighlighter(this); fragment.AddDrawableProvider(highlighter); modularSearchView = FindViewById <PdfSearchViewModular> (Resource.Id.modularSearchView); if (modularSearchView == null) { throw new IllegalStateException("Error while loading CustomFragmentActivity. The example layout was missing the search view."); } modularSearchView.MoreSearchResults += (sender, e) => highlighter.AddSearchResults(e.P0); modularSearchView.SearchCleared += (sender, e) => highlighter.ClearSearchResults(); modularSearchView.SearchResultSelected += (sender, e) => { // Pass on the search result to the highlighter. If 'null' the highlighter will clear any selection. highlighter.SetSelectedSearchResult(e.P0); if (e.P0 != null) { fragment.ScrollTo(PdfUtils.CreatePdfRectUnion(e.P0.TextBlock.PageRects.Cast <RectF> ().ToList()), e.P0.PageIndex, 250, false); } }; // The search view is hidden by default (see layout). Set up a click listener that will show the view once pressed. var openSearchButton = FindViewById <ImageView> (Resource.Id.openSearchButton); openSearchButton.SetImageDrawable(TintDrawable(openSearchButton.Drawable, ContextCompat.GetColor(this, Resource.Color.pspdf__color_white))); openSearchButton.Click += (sender, e) => modularSearchView.Show(); }
private void button_Click(object sender, RoutedEventArgs e) { var openFileDialog = new OpenFileDialog() { Filter = "PDF files (*.pdf)|*.pdf" }; if (openFileDialog.ShowDialog() != true) { return; } try { textBox.Text = PdfUtils.Pdf2Text(openFileDialog.FileName); if (string.IsNullOrWhiteSpace(textBox.Text)) { MessageBox.Show("The selected pdf file does not contain any text", "Info"); } } catch (Exception ex) { textBox.Text = string.Empty; MessageBox.Show(ex.Message, "Error"); } }
public PdfSourceRect GetUnionRectangleWithNeighbour(int pageNumber) { CalculateCanvas(); PdfSourceRect pageRect = documentManager.GetPageRectGuess(pageNumber); PdfSourceRect pageRect2; if (PdfUtils.HorizontalPagePosition(PageLayoutMode, pageNumber) == 1) { pageRect2 = documentManager.GetPageRectGuess(pageNumber - 1); pageRect = pageRect.unionDouble(pageRect2); } else if (PdfUtils.HorizontalPagePosition(PageLayoutMode, pageNumber) == -1 && pageNumber + 1 < PageCount) { //unify with right neighbour if it exists pageRect2 = documentManager.GetPageRectGuess(pageNumber + 1); pageRect = pageRect.unionDouble(pageRect2); } else { pageRect = pageRect.Clone(); } pageRect.dX -= BorderSize; pageRect.dWidth += 2.0 * BorderSize; pageRect.dY -= BorderSize; pageRect.dHeight += 2.0 * BorderSize; return(pageRect); }
public IActionResult GetCertificate(int testSessionId) { var symbols = repository.GetCertificateSymbols(testSessionId); var bytes = PdfUtils.GenerateCerfificate(env, symbols.TemplateName, symbols); return(File(bytes, "application/pdf")); }
public void PdfUtilsAsposeWordTest() { var pdfUtil = new PdfUtils(new WaterMarkMultiText() { BigText = "中国资产证券分析网", SmallText = "下载人" + DateTime.Now.ToString() }); pdfUtil.PdfPermission = PdfUtils.PdfPermissionEnum.ContentCopy | PdfUtils.PdfPermissionEnum.Printing; pdfUtil.PdfPermission = PdfUtils.PdfPermissionEnum.Printing; // pdfUtil.m_rotation = 0; pdfUtil.WordToPdf("D:\\wordToPdf\\公司简介横.docx"); //pdfUtil.m_rotation = 0; //pdfUtil.WordToPdf("D:\\wordToPdf\\公司简介横.docx"); // Stream stream = File.OpenRead("D:/wordToPdf/公司简介.docx"); // pdfUtil.MemoryStreamToPdf(stream, "D:/wordToPdf/Memory.pdf"); // pdfUtil.WordToPdfMemoryStream("D:/wordToPdf/公司简介.docx"); // var pdfUtil2 = new PdfUtils(); // pdfUtil2.WordToPdf("D:\\wordToPdf\\公司简介横.docx"); }
private void Export(ReportFormat reportFormat, ReportType reportType, SaveFileDialog dialog) { dialog.FileName = String.Format("Database Benchmark {0:yyyy-MM-dd HH.mm}", DateTime.Now); if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { try { // Start loading and disable MainForm. LoadingForm.Start(string.Format("Exporting to {0} ....", reportFormat), Bounds); Enabled = false; switch (reportFormat) { case ReportFormat.CSV: CsvUtils.ExportResults(History, saveFileDialogCsv.FileName, reportType); break; case ReportFormat.JSON: ComputerConfiguration configuration = SystemUtils.GetComputerConfiguration(); JsonUtils.ExportToJson(saveFileDialogJson.FileName, configuration, History, reportType); break; case ReportFormat.PDF: BenchmarkTest test = History[0]; PdfUtils.Export(saveFileDialogPdf.FileName, ApplicationManager.StepFrames, test.FlowCount, test.RecordCount, test.Randomness, SystemUtils.GetComputerConfiguration(), reportType); break; } // Stop loading end enable MainForm LoadingForm.Stop(); Enabled = true; } catch (Exception exc) { string message = string.Format("Export results to {0} failed...", reportFormat); Logger.Error(message, exc); ReportError(message); Enabled = true; LoadingForm.Stop(); } } }
protected internal Tuple <string, MemoryStream> CnabsFile(string fileName, MemoryStream memoryStream, DownloadFileAuthorityType authority) { if (authority == DownloadFileAuthorityType.AllForbidden) { //TODO: throw new NotImplementedException("暂不支持DownloadFileAuthorityType.AllForbidden"); } if (fileName.EndsWith("doc", StringComparison.CurrentCultureIgnoreCase) || fileName.EndsWith("docx", StringComparison.CurrentCultureIgnoreCase)) { if (authority == DownloadFileAuthorityType.Word2PdfWithWatermark) { var waterMark = new WaterMarkMultiText() { BigText = CommUtils.GetWatermarkTitle(), SmallText = "[" + CurrentUserName + "]下载于" + DateTime.Now.ToString() }; var pdfUtil = new PdfUtils(waterMark); pdfUtil.PdfPermission = PdfUtils.PdfPermissionEnum.Printing; var ms = pdfUtil.WordToPdfMemoryStream(memoryStream); ms.Seek(0, SeekOrigin.Begin); var pdfFileName = FileUtils.ConvertFileExtension(fileName, FileType.PDF); return(Tuple.Create(pdfFileName, ms)); } else if (authority == DownloadFileAuthorityType.Word2Pdf) { var pdfUtil = new PdfUtils(); var ms = pdfUtil.WordToPdfMemoryStream(memoryStream); ms.Seek(0, SeekOrigin.Begin); var pdfFileName = FileUtils.ConvertFileExtension(fileName, FileType.PDF); return(Tuple.Create(pdfFileName, ms)); } } return(Tuple.Create(fileName, memoryStream)); }
public async Task <IActionResult> Get(int id) { var doc = PdfUtils.GetPage(); var result = await _viewRenderService.RenderToStringAsync("Report/Test", id); doc.Objects.Add(new ObjectSettings { PagesCount = true, HtmlContent = result, HeaderSettings = { FontSize = 9, Right = $"POLIEDRO | {id}", Spacing = 0 } }); var data = _converter.Convert(doc); return(File(data, "application/pdf", "myFile.pdf")); }
private void CalculateCanvas() { if (canvasDirty == TCanvasDirtyness.Clean) { return; } int start = 1, end = PageCount; //If we are in a mode which doesnt show all pages, we only need to go through the shown ones if (!PdfUtils.PageLayoutScrollingEnabled(PageLayoutMode)) { switch (PdfUtils.HorizontalPagePosition(PageLayoutMode, PageNo)) { case -1: { start = PageNo; end = Math.Min(PageNo + 1, end); //because PageNo + 1 doesn't necessarily exist in this case break; } case 0: { start = PageNo; end = PageNo; break; } case 1: { start = PageNo - 1; //pageNo-1 always exists in this case end = PageNo; break; } } } int changedPage = int.MaxValue; PdfSourceRect oldCanvasRect = _canvasRect.Clone(); bool entireCanvasDirty = (canvasDirty == TCanvasDirtyness.CanvasDirty); canvasDirty = TCanvasDirtyness.Clean; if (entireCanvasDirty) { _canvasRect.dWidth = 0.0; _canvasRect.dX = 0.0; } double offset = 0.0; int page = entireCanvasDirty ? start : Math.Max(start, GetNextRelevantPage(start, end)); for (; page <= end; page++) { PdfSourceRect rect = null; if (pagesToLoadExactly.Remove(page)) { Logger.LogInfo("page " + page + " was loaded exactly"); //load page exactly rect = documentManager.GetPageRect(page); } else { rect = documentManager.GetPageRectGuess(page); } int nPage; lock (newlyLoadedPagesLock) { nPage = newlyLoadedPages.FirstOrDefault(number => number >= start && number <= end); } if (!entireCanvasDirty && nPage > 1 && nPage < page) { //maybe the getting of pages has getted a page before this one (due to predictionAlgorithm). In this case, consider this page first page = nPage; rect = documentManager.GetPageRectGuess(page); } bool removed = false; lock (newlyLoadedPagesLock) { removed = newlyLoadedPages.Remove(page); } if (removed || entireCanvasDirty)//If the page is newly loaded, calculate its position exactly. Also if the entire canvas is dirty, calculate always { changedPage = Math.Min(changedPage, page); //position the page newly, knowing that its the first time we know its exact size switch (PdfUtils.HorizontalPagePosition(PageLayoutMode, page)) { case 0: { //place 1 page rect.dCenterX = 0.0; rect.dY = GetPreviousBottom(page, start, end) + _borderSize; if (rect.dX - _borderSize < _canvasRect.dX) { _canvasRect.dWidth += _canvasRect.dX - (rect.dX - _borderSize); _canvasRect.dX = rect.dX - _borderSize; } if (rect.dRight + _borderSize > _canvasRect.dRight) { _canvasRect.dWidth += rect.dRight + _borderSize - _canvasRect.dRight; } offset = rect.dBottom + _borderSize - GetNextTop(page, start, end); break; } case -1: { //place left page rect.dRight = 0.0 - _borderSize / 2.0; rect.dY = Math.Max(GetPreviousBottom(page, start, end), GetPreviousBottom(page - 1, start, end)) + _borderSize; if (rect.dX - _borderSize < _canvasRect.dX) { _canvasRect.dWidth += _canvasRect.dX - (rect.dX - _borderSize); _canvasRect.dX = rect.dX - _borderSize; } offset = rect.dY - GetNextTop(page, start, end); break; } default: { //place right page rect.dX = 0.0 + _borderSize / 2.0; rect.dY = documentManager.GetPageRectGuess(page - 1).dY; if (rect.dRight + _borderSize > _canvasRect.dRight) { _canvasRect.dWidth += rect.dRight + _borderSize - _canvasRect.dRight; } offset = Math.Max(GetPreviousBottom(page, start, end), rect.dBottom) + _borderSize - GetNextTop(page, start, end); break; } } } else { //Only pages that are not newly loaded make it here. Adjust their offset if (offset == 0.0) { //if there is no offset, we dont need to do anything until we hit a page that needs to be loaded anew page = GetNextRelevantPage(start, end); if (page == int.MaxValue) { break;//there is no more page to load -> stop iterating through pages } page--; continue; } rect.Offset(0.0, offset); } }//end for-loop //we have loaded and positioned all pages, now we only need to resize the canvas lock (newlyLoadedPagesLock) { if (newlyLoadedPages.Count == 0 && pagesToLoadExactly.Count == 0) { canvasDirty = TCanvasDirtyness.Clean; } } if (PdfUtils.HorizontalPagePosition(PageLayoutMode, end) == -1) { offset = documentManager.GetPageRectGuess(end).dBottom + _borderSize - _canvasRect.dBottom; } if (offset != 0.0) { _canvasRect.dHeight += offset; CanvasRectChanged(oldCanvasRect, _canvasRect, changedPage); } return; }