Kaynağa Gözat

Bugfixed / portrait and landscape isolated widget & scale logo for margin top height

Feature
Safet Purkovic 4 yıl önce
ebeveyn
işleme
90d710b9b8

+ 29
- 3
BlackRock.Reporting.API/Controllers/PDFGeneratorController.cs Dosyayı Görüntüle



// document.Close(); // document.Close();


ModifyPDF(path);
var pixels = CalculatePixels(options.MarginOptions.Top);
ModifyPDF(path, pixels);
FileStream stream = new FileStream(path, FileMode.Open); FileStream stream = new FileStream(path, FileMode.Open);
return File(stream, "application/pdf", fileName); return File(stream, "application/pdf", fileName);
} }

private double CalculatePixels(string v)
{
float Result;
if(float.TryParse(v,out Result))
return 2.83*Result;
var num = float.Parse(v.Split(' ')[0]);
return 2.83*num;
}

[HttpGet("isolate/{url}")] [HttpGet("isolate/{url}")]
public async Task<IActionResult> GetIsolated([FromQuery] OptionsForPdf pdfOptions, string url = "http://localhost:3000/#/dashboard") public async Task<IActionResult> GetIsolated([FromQuery] OptionsForPdf pdfOptions, string url = "http://localhost:3000/#/dashboard")
{ {
var options = mapper.Map<OptionsForPdf, PdfOptions>(pdfOptions); var options = mapper.Map<OptionsForPdf, PdfOptions>(pdfOptions);


await generator.Isolate(result, path, options); await generator.Isolate(result, path, options);

var pixels = CalculatePixels(options.MarginOptions.Top);
ModifyPDF(path, pixels);


FileStream stream = new FileStream(path, FileMode.Open); FileStream stream = new FileStream(path, FileMode.Open);
return File(stream, "application/pdf", fileName); return File(stream, "application/pdf", fileName);
} }
reader.Close(); reader.Close();
} }


private void ModifyPDF(string path)
private void ModifyPDF(string path,double marginTop)
{ {
var filePath = path; var filePath = path;
byte[] bytes = System.IO.File.ReadAllBytes(filePath); byte[] bytes = System.IO.File.ReadAllBytes(filePath);
}; };
pdfData.SetGState(graphicsState); pdfData.SetGState(graphicsState);
Image image = Image.GetInstance(Path.Combine(host.ContentRootPath, "logo.png")); Image image = Image.GetInstance(Path.Combine(host.ContentRootPath, "logo.png"));
image.SetAbsolutePosition(pageRectangle.Width/2-image.Width/2,pageRectangle.Height-image.Height-5);
var OriginalWidth = image.Width;
var OriginialHeight = image.Height;
var scale = OriginalWidth/OriginialHeight;
OriginialHeight = (float)marginTop-5;
OriginalWidth = OriginialHeight*scale;
// image.ScaleToFit(OriginalWidth, OriginialHeight);
//image.Width = OriginalWidth;
image.ScaleAbsoluteWidth(OriginalWidth);
image.ScaleAbsoluteHeight(OriginialHeight);
// image.SetAbsolutePosition(pageRectangle.Width/2-OriginalWidth/2,pageRectangle.Height-OriginialHeight-5);
image.SetAbsolutePosition(5,pageRectangle.Height-OriginialHeight-5);
pdfData.AddImage(image); pdfData.AddImage(image);
// pdfData.BeginText(); // pdfData.BeginText();

+ 1
- 1
BlackRock.Reporting.API/Core/Models/OptionsForPdf.cs Dosyayı Görüntüle

/// Paper margins, defaults to none /// Paper margins, defaults to none
/// </summary> /// </summary>
//public MarginOptions MarginOptions { get; set; } = new MarginOptions(){Top="3.0 mm",Right = "3.0 mm",Left="3.0 mm",Bottom="12.7 mm"}; //public MarginOptions MarginOptions { get; set; } = new MarginOptions(){Top="3.0 mm",Right = "3.0 mm",Left="3.0 mm",Bottom="12.7 mm"};
public string MarginTop {get;set;} ="3.0 mm";
public string MarginTop {get;set;} ="6.0 mm";
public string MarginRight {get;set;} = "3.0 mm"; public string MarginRight {get;set;} = "3.0 mm";
public string MarginLeft {get;set;} ="3.0 mm"; public string MarginLeft {get;set;} ="3.0 mm";
public string MarginBottom {get;set;} ="12.7 mm"; public string MarginBottom {get;set;} ="12.7 mm";

+ 5
- 2
BlackRock.Reporting.API/Persistence/PdfGenerator.cs Dosyayı Görüntüle

{ {
await page.GoToAsync(url, WaitUntilNavigation.DOMContentLoaded); await page.GoToAsync(url, WaitUntilNavigation.DOMContentLoaded);


// await modifyPage(page,param);
var allResultsSelector = ".chartjs-render-monitor"; var allResultsSelector = ".chartjs-render-monitor";
await page.WaitForSelectorAsync(allResultsSelector); await page.WaitForSelectorAsync(allResultsSelector);
await EvaluateScript(page, "dist/main.js"); await EvaluateScript(page, "dist/main.js");
using (var page = await browser.NewPageAsync()) using (var page = await browser.NewPageAsync())
{ {
await page.GoToAsync(url, WaitUntilNavigation.DOMContentLoaded); await page.GoToAsync(url, WaitUntilNavigation.DOMContentLoaded);


var allResultsSelector = ".chartjs-render-monitor"; var allResultsSelector = ".chartjs-render-monitor";
await page.WaitForSelectorAsync(allResultsSelector); await page.WaitForSelectorAsync(allResultsSelector);
await page.EvaluateFunctionAsync("() => document.getElementById('sel').selectedIndex = "+((options.Landscape)?1:0));
await page.ClickAsync("button.dugme");
await EvaluateScript(page, "dist/main.js"); await EvaluateScript(page, "dist/main.js");
await EvaluateScript(page, "dist/main2.js"); await EvaluateScript(page, "dist/main2.js");
await page.PdfAsync(path, options await page.PdfAsync(path, options

+ 1
- 1
BlackRock.Reporting.API/dist/main.js
Dosya farkı çok büyük olduğundan ihmal edildi
Dosyayı Görüntüle


Loading…
İptal
Kaydet