Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.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
如何在iOS上使用CoreGraphics渲染的pdf上反转文本颜色?_Ios_Pdf_Text_Core Graphics_Quartz 2d - Fatal编程技术网

如何在iOS上使用CoreGraphics渲染的pdf上反转文本颜色?

如何在iOS上使用CoreGraphics渲染的pdf上反转文本颜色?,ios,pdf,text,core-graphics,quartz-2d,Ios,Pdf,Text,Core Graphics,Quartz 2d,我正在使用一个开源的PDF查看库(VFR PDF阅读器)。我正在尝试实现“夜间模式”或白色文本的黑色背景。我可以得到任何我喜欢的颜色的背景,但是我不能改变文本的颜色。您可以在“drawLayer”方法中看到可以在何处修改背景色。它只是简单地更改PDF渲染的矩形的颜色 我的问题是:我是否可以对“上下文”做些什么,使pdf中的文本改变颜色(在我的情况下,我想要白色文本)?所讨论的行如下所示(第558行): 以下是我如何解决夜视问题的: 1) 我在NSUserDefault中跟踪用户偏好(夜间模式或日

我正在使用一个开源的PDF查看库(VFR PDF阅读器)。我正在尝试实现“夜间模式”或白色文本的黑色背景。我可以得到任何我喜欢的颜色的背景,但是我不能改变文本的颜色。您可以在“drawLayer”方法中看到可以在何处修改背景色。它只是简单地更改PDF渲染的矩形的颜色

我的问题是:我是否可以对“上下文”做些什么,使pdf中的文本改变颜色(在我的情况下,我想要白色文本)?所讨论的行如下所示(第558行):


以下是我如何解决夜视问题的:

1) 我在NSUserDefault中跟踪用户偏好(夜间模式或日间模式)

2) 在

a) 检索用户首选项

NSString *userViewMode = [[NSUserDefaults standardUserDefaults] objectForKey:@"DayOrNightSetting"];
b) 将CGContextRef的背景颜色设置为白色

 CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);
c) 将CGContextDrawPage(上下文,_PDFPageRef)替换为:


我正在使用上面提到的代码,但是在特定的PDF页面上遇到了一些问题,这可以隐藏许多带有黑色背景和白色文本的页面,但不是全部。你知道吗?对于某些页面,它会使背景变成灰色,而不是black@ShreeshGarg是否一次渲染多个页面?如果我在上下文中仅呈现1页,则此代码适用于我。
NSString *userViewMode = [[NSUserDefaults standardUserDefaults] objectForKey:@"DayOrNightSetting"];
 CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);
if ([userViewMode isEqualToString:@"Night"]) {
        CGContextSetBlendMode(context, kCGBlendModeDestinationAtop);

        CGContextDrawPDFPage(context, _PDFPageRef);
        CGContextSetBlendMode(context, kCGBlendModeExclusion);
        CGContextDrawPDFPage(context, _PDFPageRef);
    }
    else
    {
       CGContextSetBlendMode(context,kCGBlendModeNormal);
    CGContextDrawPDFPage(context, _PDFPageRef);
    }