PDFsharp & MigraDoc Foundation https://forum.pdfsharp.net/ |
|
pdfsharp convert cmyk to mixed colors working on grayscales https://forum.pdfsharp.net/viewtopic.php?f=2&t=3584 |
Page 1 of 1 |
Author: | David_MP [ Wed May 03, 2017 11:48 pm ] |
Post subject: | pdfsharp convert cmyk to mixed colors working on grayscales |
Hi! I'm trying to apply cmyk color to a font or to a paragraph but when I render the pdf all the colors in grayscale are converted in mixed colors. I'm using that: style.ParagraphFormat.Shading.Color = Color.FromCmyk(0, 0, 0, 25) style.Font.Color = Color.FromCmyk(0, 0, 0, 25) the result of that when I open the pdf with any image editor is solmething like: c: 64 m: 34 y: 2 k: 0 <-- mixed colors by other side if I try to do it in pure black : style.ParagraphFormat.Shading.Color = Color.FromCmyk(0, 0, 0, 100) style.Font.Color = Color.FromCmyk(0, 0, 0, 100) The result is fine: c: 0 m: 0 y: 0 k: 100. <-- pure color Do you know if it's posible to create a gray color without mixed colors? Thank you |
Author: | Thomas Hoevel [ Thu May 04, 2017 7:47 am ] |
Post subject: | Re: pdfsharp convert cmyk to mixed colors working on graysca |
Hi! Did you set the Color Mode to CMYK? If not, try this first. For MigraDoc: Set the UseCmykMode property of the Document object to true. For PDFsharp: Invoke "document.Options.ColorMode = PdfColorMode.Cmyk;" where document is your PdfDocument object. See also: http://www.pdfsharp.net/wiki/ColorsCMYK-sample.ashx |
Author: | David_MP [ Thu May 04, 2017 3:18 pm ] |
Post subject: | Re: pdfsharp convert cmyk to mixed colors working on graysca |
Hi! Yes, I did: Const unicode = False Const embedding As PdfFontEmbedding = PdfFontEmbedding.Always Dim pdfRenderer As PdfDocumentRenderer = New PdfDocumentRenderer(unicode, embedding) pdfRenderer.Document = document pdfRenderer.RenderDocument() Dim filename As String = sResultFolder & "Result (" & Now.ToString("yyyy-MM-dd HH.mm.ss") & ").pdf" pdfRenderer.PdfDocument.Options.ColorMode = PdfColorMode.Cmyk pdfRenderer.PdfDocument.Save(filename) But I think that only allows to keep the cmyk profile. The point is the ink result in each color don't keep like I have define. I need the result in cmyk (0, 0, 0, 25) not a cmyk (241, 241, 241, 0). Thank you for your answers, |
Author: | TH-Soft [ Thu May 04, 2017 9:26 pm ] |
Post subject: | Re: pdfsharp convert cmyk to mixed colors working on graysca |
Hi! You are using MigraDoc, but it seems you still do not set "UseCmykMode". You only show code fragments and you do not provide a generated PDF. In the past turning code fragments into something I can debug often proved to be a waste of time. I assume PDFsharp works correctly when used as intended. |
Author: | David_MP [ Fri May 05, 2017 9:17 am ] | ||
Post subject: | Re: pdfsharp convert cmyk to mixed colors working on graysca | ||
Hi! I'm using that code: Code: 'Imports System
Imports System.IO Imports System.Text 'Imports to PDF Imports PdfSharp.Pdf Imports PdfSharp.Drawing Imports PdfSharp.Pdf.PdfDocument Imports PdfSharp.Pdf.IO Imports MigraDoc.DocumentObjectModel Imports MigraDoc.DocumentObjectModel.Tables Imports MigraDoc.Rendering Imports System.Drawing.Point '----------------------------------------------------------------------- #Region " Ini " Public Sub New() gRenderImage = New clsRenderImage End Sub #End Region Public Sub Generate_Test() 'BEGINING PDF Dim frm As New frmTest Try LineaLog(INFORMATION, "Generating: TEST...") ' loading the form frm = New frmTest frm.Left = -4000 frm.Show() ' Saving folder... Dim sFolderResult As String = ReadOption("Test_FolderResul", gOptions) 'Generate PDF Test Dim document As New Document() 'Creating the size document.DefaultPageSetup.PageWidth = "195mm" document.DefaultPageSetup.PageHeight = "285mm" 'Position Dim section As Section = document.AddSection() section.PageSetup.DifferentFirstPageHeaderFooter = True section.PageSetup.OddAndEvenPagesHeaderFooter = False 'Folder definition Dim FolderResources As String = ReadOption("Test_FolderResources", gOptions) Dim sFolderResources As String = ReadOption("Test_FolderResources", gOptions) 'background Dim image As Shapes.Image = section.AddImage(sFolderResources + "\WHITE_BACKGROUND.png") image.Width = frm.background.Width * 0.24 image.Height = frm.background.Height * 0.24 image.RelativeVertical = Shapes.RelativeVertical.Page image.RelativeHorizontal = Shapes.RelativeHorizontal.Page image.Left = Shapes.ShapePosition.Center image.Top = Shapes.ShapePosition.Center image.WrapFormat.Style = Shapes.WrapStyle.Through '--------------------------------- ' FONT STYLES '---------------------------------- ' TEXT 1 Dim style As Style = document.Styles.AddStyle("TestFontBlack", "Normal") style.Font.Name = "Arial" style.Font.Size = 10 style.Font.Bold = False style.Font.Color = Color.FromCmyk(0, 0, 0, 100) style.ParagraphFormat.LineSpacingRule = LineSpacingRule.AtLeast style.ParagraphFormat.LineSpacing = 10.85 'TEXT 2 style = document.Styles.AddStyle("TestFontGray", "Normal") style.Font.Name = "Arial" style.Font.Size = 10 style.Font.Bold = False style.Font.Color = Color.FromCmyk(0, 0, 0, 50) style.ParagraphFormat.LineSpacingRule = LineSpacingRule.AtLeast style.ParagraphFormat.LineSpacing = 10.85 'Text 1 Dim text1 As Shapes.TextFrame text1 = section.AddTextFrame() Dim paragraphtext1 As Paragraph = text1.AddParagraph() 'Text paragraphtext1.AddText("TEXT IN BLACK CMYK (0, 0, 0, 100)") paragraphtext1.AddText(" AND THE RESULT IS CMYK(0, 0, 0, 100)") paragraphtext1.Style = "TestFontBlack" paragraphtext1.Format.Alignment = ParagraphAlignment.Left text1.RelativeVertical = Shapes.RelativeVertical.Page text1.RelativeHorizontal = Shapes.RelativeHorizontal.Page text1.Width = 1000 text1.Height = 100 text1.Top = Unit.FromPoint(100) text1.WrapFormat.DistanceLeft = Unit.FromPoint(20) 'Text 2 Dim text2 As Shapes.TextFrame text2 = section.AddTextFrame() Dim paragraphtext2 As Paragraph = text2.AddParagraph() 'Text paragraphtext2.AddText("TEXT IN GRAY CMYK(0, 0, 0, 50)") paragraphtext2.AddText(" AND THE RESULT IS CMYK(55, 45, 42, 7)") paragraphtext2.Style = "TestFontGray" paragraphtext2.Format.Alignment = ParagraphAlignment.Left text2.RelativeVertical = Shapes.RelativeVertical.Page text2.RelativeHorizontal = Shapes.RelativeHorizontal.Page text2.Width = 1000 text2.Height = 100 text2.Top = Unit.FromPoint(200) text2.WrapFormat.DistanceLeft = Unit.FromPoint(20) Const unicode = False Const embedding As PdfFontEmbedding = PdfFontEmbedding.Always Dim pdfRenderer As PdfDocumentRenderer = New PdfDocumentRenderer(unicode, embedding) pdfRenderer.Document = document pdfRenderer.RenderDocument() Dim filename As String = sFolderResult & "TEST (" & Now.ToString("yyyy-MM-dd HH.mm.ss") & ").pdf" pdfRenderer.PdfDocument.Options.ColorMode = PdfColorMode.Cmyk '--------------------------- 'RENDER TEST '--------------------------- pdfRenderer.PdfDocument.Save(filename) frm.Close() LineaLog(INFORMATION, "Generating: PDF TEST ... OK") Catch ex As Exception LineaLog(PROCESS_ERROR, ex.Message & ex.StackTrace) gResult = FIN_PROCESS_ERROR Finally If (frm IsNot Nothing) Then frm.Close() frm.Dispose() GC.Collect() End If End Try End Sub #Region " End " Public Sub Dispose() Implements IDisposable.Dispose gRenderImage = Nothing GC.Collect() End Sub #End Region
|
Author: | Thomas Hoevel [ Mon May 08, 2017 11:45 am ] |
Post subject: | Re: pdfsharp convert cmyk to mixed colors working on graysca |
Hi! Above "'Creating the size" would be a good place for Code: document.UseCmykMode = true (not sure this is valid VB code)This is the code you need to tell MigraDoc you want to use CMYK colors. Without this assignment, all colors will be converted to RGB. The call "pdfRenderer.PdfDocument.Options.ColorMode = PdfColorMode.Cmyk" comes after all pages have been created in RGB mode. AFAIK you can skip calling this since you are using MigraDoc. |
Author: | David_MP [ Sun May 14, 2017 10:55 pm ] |
Post subject: | Re: pdfsharp convert cmyk to mixed colors working on graysca |
Hi! It works fine with that code!!! Thank you!! But, one more thing please: I'm using a cmyk gray background, and over it I'm putting a transparent .PNG picture (in RGB). It's possible that at last, when the background + PNG are rendered, both are converted in RGB. In addition, seems the PNG + the background it's a only one structure. Thank you again! |
Page 1 of 1 | All times are UTC |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |