Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ABCpdf.net无法正确渲染CMYK图像_C#_.net_Asp.net Mvc_Cmyk_Abcpdf9 - Fatal编程技术网

C# ABCpdf.net无法正确渲染CMYK图像

C# ABCpdf.net无法正确渲染CMYK图像,c#,.net,asp.net-mvc,cmyk,abcpdf9,C#,.net,Asp.net Mvc,Cmyk,Abcpdf9,我构建了一个自动生成PDF的应用程序,从数据库中获取数据,但最近客户注意到图像呈现不同,使用RGB颜色配置文件,而不是CMYK 因此,我试图构建一个简单的测试代码,以找出问题所在,但结果是一样的 下面是我的示例代码: 控制器 namespace PdfTest.Controllers { public class HomeController : Controller { private string _license; public HomeC

我构建了一个自动生成PDF的应用程序,从数据库中获取数据,但最近客户注意到图像呈现不同,使用RGB颜色配置文件,而不是CMYK

因此,我试图构建一个简单的测试代码,以找出问题所在,但结果是一样的

下面是我的示例代码:

控制器

namespace PdfTest.Controllers
{
    public class HomeController : Controller
    {
        private string _license;

        public HomeController()
        {
            _license = ConfigurationManager.AppSettings["abcPDFLicense"];
            XSettings.InstallLicense(_license);
        }

        public PartialViewResult Index()
        {
            using (Doc doc = new Doc())
            {
                doc.HtmlOptions.Engine = EngineType.Gecko;
                doc.HtmlOptions.AddLinks = true;

                string html = RenderRazorViewToString("Index", "");
                int pageId = doc.AddImageHtml(html, true, 2500, true);

                while (doc.Chainable(pageId))
                {
                    doc.Page = doc.AddPage();
                    pageId = doc.AddImageToChain(pageId);
                }

                for (int i = 1; i <= doc.PageCount; i++)
                {
                    doc.PageNumber = i;
                    doc.Flatten();
                }

                string pdfDirectory = Server.MapPath("~/PDF_Diesel");
                DirectoryInfo directoryInfo = new DirectoryInfo(pdfDirectory);

                if (!directoryInfo.Exists)
                    directoryInfo.Create();

                string fileName = "test.pdf";

                doc.Rendering.ColorSpace = XRendering.ColorSpaceType.Cmyk;

                doc.Save(string.Format(@"{0}\{1}", directoryInfo.FullName, fileName));
                doc.Clear();
            }

            return PartialView();
        }

        public string RenderRazorViewToString(string viewName, object model)
        {
            ViewData.Model = model;

            using (var sw = new StringWriter())
            {
                var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
                var viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);

                viewResult.View.Render(viewContext, sw);
                viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View);

                return sw.GetStringBuilder().ToString();
            }
        }
    }
}
命名空间PdfTest.Controllers
{
公共类HomeController:控制器
{
私有字符串许可证;
公共家庭控制器()
{
_license=ConfigurationManager.AppSettings[“abcPDFLicense”];
XSettings.InstallLicense(_license);
}
公共PartialViewResult索引()
{
使用(Doc=new Doc())
{
doc.HtmlOptions.Engine=EngineType.Gecko;
doc.HtmlOptions.AddLinks=true;
字符串html=RenderRazorViewToString(“Index”,“Index”);
int pageId=doc.AddImageHtml(html,true,2500,true);
while(可链接文档(页面ID))
{
doc.Page=doc.AddPage();
pageId=文件AddImageToChain(pageId);
}

对于(inti=1;iOk),我找出了问题所在

我不知道HTML不呈现CMYK颜色配置文件,只呈现RGB

为了解决这个问题,谢天谢地,我用photoshop将所有图像的颜色配置文件从CMYK更改为S_RGB,而没有损失太多的颜色质量

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <img src="file://@Server.MapPath("~/Images/_banner2.jpg")" />
    <img src="~/Images/_banner2.jpg" />
</body>
</html>