Skip to content

Instantly share code, notes, and snippets.

View andruhovski's full-sized avatar

Andriy Andruhovski andruhovski

View GitHub Profile
@andruhovski
andruhovski / MergeController.cs
Created November 1, 2020 12:26
A helper method for Image to PDF conversion
private Document ConvertFromImage(string filePath)
{
var docStream = new MemoryStream();
var doc = new Document();
var page = doc.Pages.Add();
var image = new Aspose.Pdf.Image
{
ImageStream = new FileStream(filePath, FileMode.Open, FileAccess.Read)
};
@andruhovski
andruhovski / MergeController.cs
Created November 1, 2020 12:02
Implement PostMergeFiles method and helper for Image conversion
// POST: /api/merge
[HttpPost]
public IActionResult PostMergeFiles(IEnumerable<string> list)
{
var document = new Document();
foreach (var item in list)
{
var filePath = Path.Combine(_storageRootFolder, item);
var pdfDocument = Path.GetExtension(item) switch
{
@andruhovski
andruhovski / MergeController.cs
Created November 1, 2020 11:56
PDF Merge API
using Aspose.Pdf;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
namespace Aspose.Demo.Pdf.Merger.Controllers
@andruhovski
andruhovski / site.js
Created November 1, 2020 11:10
Click handlers for selecting and merging PDF
let lastIndex = 0;
function selectFileClickHandler() {
let order = parseInt($(this).attr('data-order'));
if (order > 0) {
$(this).attr('data-order', '0');
$(this).find('span').hide('slow');
for (let cell of $("*[data-order]")) {
let currentOrder = parseInt(cell.dataset.order);
if (currentOrder > order) {
cell.dataset.order = currentOrder - 1;
@andruhovski
andruhovski / TokenController.cs
Created October 30, 2020 11:21
Token generator for Resumable.JS
using Microsoft.AspNetCore.Mvc;
using System;
using System.Linq;
namespace Aspose.Demo.Pdf.Merger.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class TokenController : ControllerBase
@andruhovski
andruhovski / UploadController.cs
Created October 30, 2020 11:06
Upload Controller for Resumable.JS
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System.IO;
using Microsoft.Extensions.Configuration;
namespace Aspose.Demo.Pdf.Merger.Controllers
{
[Route("api/[controller]")]
@andruhovski
andruhovski / FilesController.cs
Created October 30, 2020 10:29
Simple Web API controller for managing files on the server
using Aspose.Demo.Pdf.Merger.Models;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Microsoft.Extensions.Configuration;
namespace Aspose.Demo.Pdf.Merger.Controllers
@andruhovski
andruhovski / ConvertPDFtoPPTX.cs
Created October 13, 2020 08:55
Removing notes and separate images
private static void ConvertPDFtoPPTX(string inputFileName, string outputFileName)
{
var document = new Aspose.Pdf.Document(inputFileName);
foreach (var page in document.Pages)
{
RemoveAnnotations(page, Pdf.Annotations.AnnotationType.Ink);
RemoveAnnotations(page, Pdf.Annotations.AnnotationType.Square);
}
@andruhovski
andruhovski / RemoveAnnotations.cs
Created October 13, 2020 08:45
Removing annotations from PDF page
private static void RemoveAnnotations(Page page, Aspose.Pdf.Annotations.AnnotationType annotationType)
{
var annotations = page.Annotations.Where(a => a.AnnotationType == annotationType).ToArray();
foreach (var annotation in annotations)
{
page.Annotations.Delete(annotation);
}
}
@andruhovski
andruhovski / ShowAnnotations.cs
Created October 13, 2020 08:38
Show the list of annotations in PDF document
private static void ShowAnnotations()
{
var inputFileName = @"C:\tmp\Presentations\Sample Screen.pdf";
var document = new Aspose.Pdf.Document(inputFileName);
foreach (var page in document.Pages)
{
foreach (var annotation in page.Annotations)
{
Console.WriteLine($"{page.Number} {annotation.FullName} {annotation.AnnotationType} {annotation.Color}");
}