コード例 #1
0
        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();
        }
コード例 #2
0
ファイル: MainWindow.xaml.cs プロジェクト: jonatanrs/Pdf2Text
        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");
            }
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        public IActionResult GetCertificate(int testSessionId)
        {
            var symbols = repository.GetCertificateSymbols(testSessionId);
            var bytes   = PdfUtils.GenerateCerfificate(env, symbols.TemplateName, symbols);

            return(File(bytes, "application/pdf"));
        }
コード例 #5
0
        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");
        }
コード例 #6
0
        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();
                }
            }
        }
コード例 #7
0
        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));
        }
コード例 #8
0
        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"));
        }
コード例 #9
0
        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;
        }