我写了一个C#代码,在下载时合并两个pdf文件,但是它将一些(不是全部)文档旋转了180度。我已经附上了我上传的样本文件。
请帮助我。
示例文件
try
{
string NewFileName = "InspectionReport" + DateTime.Now.ToString("ddMMMyyyy HHmmss").Replace(" ", "");
destinationFile = HostingEnvironment.MapPath(@"/Downloads/CNGCertificates/" + NewFileName + ".pdf");
int f = 0;
PdfReader reader = new PdfReader(sourceFiles[f]);
int n = reader.NumberOfPages;
Document document = new Document(reader.GetPageSizeWithRotation(1));
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(destinationFile, FileMode.Create));
document.Open();
PdfContentByte cb = writer.DirectContent;
PdfImportedPage page;
int rotation;
while (f < sourceFiles.Length)
{
int i = 0;
while (i < n)
{
i++;
document.SetPageSize(reader.GetPageSizeWithRotation(i));
document.NewPage();
page = writer.GetImportedPage(reader, i);
rotation = reader.GetPageRotation(i);
if (rotation == 90 || rotation == 270)
{
cb.AddTemplate(page, 0, -1f, 1f, 0, 0, reader.GetPageSizeWithRotation(i).Height);
}
else
{
cb.AddTemplate(page, 1f, 0, 0, 1f, 0, 0);
}
}
f++;
if (f < sourceFiles.Length)
{
reader = new PdfReader(sourceFiles[f]);
n = reader.NumberOfPages;
}
}
document.Close();
}
您正在以相同的方式处理 90
和 270
的旋转
。因此,如果按预期方式处理旋转
值为 90
的源页面,则旋转
值为 270
的源页面最终将颠倒过来。
因此,您必须单独处理 270
,使用仿射变换以另一种方式旋转:
cb.AddTemplate(page, 0, 1f, -1f, 0, reader.GetPageSizeWithRotation(i).Width, 0);
同样,您也必须单独处理< code>180值,除非您希望这样的页面上下颠倒:
cb.AddTemplate(page, -1f, 0, 0, -1f, reader.GetPageSizeWithRotation(i).Width, reader.GetPageSizeWithRotation(i).Height);
尽管如此,您实际上根本不应该使用普通的< code>PdfWriter进行合并,您应该使用< code>PdfCopy。使用< code>PdfCopy,您不必再处理旋转等细节。此外,使用< code>PdfWriter时,批注会被复制,而不会被删除。请看这里的例子。(如果您使用的是5.5.x版本,您不必再区分这里提到的< code>PdfCopy变体,您可以将普通的< code>PdfCopy用于所有用例。但是,如果您使用的是4.x版本,您必须做出适当的选择。)
通过阅读HSL / HSV色彩理论,我得到的印象是色调分量是一个周期性属性,每360度重复一次,可以独立于饱和度和亮度/值而改变。如果我错了,请纠正我,但这些陈述在逻辑上遵循前面的定义: < li >将色调旋转360度会产生相同的颜色 < li >将色调旋转180度两次会产生原始颜色 < li >将色调旋转180度,然后旋转-180度,产生原始颜色 但是,只有选项 1 是正确的。将色调旋转 4 倍
同时研究。net,我碰到了SpinLock和SpinWait。从表面上看,在我看来,SpinWait将永远是一条出路..当线程实际上必须等待来自线程外部的信号时,为什么还要继续忙碌等待而不放弃CPU呢?在这些空闲等待中花费的周期可能已经被线程使用,该线程可能会发出信号并释放正在忙碌等待的线程。 为什么会存在SpinLock?它与使用while循环的简单忙等待有什么不同?在什么情况下会想使用Spin
问题内容: 为什么要编译Python脚本?您可以直接从.py文件运行它们,并且效果很好,那么在性能上有什么优势吗? 我还注意到,我的应用程序中的某些文件被编译为.pyc,而另一些则没有,为什么? 问题答案: 它被编译为字节码,可以更快,更快速地使用。 无法编译某些文件的原因是,每次运行脚本时都会重新编译与之一起调用的主脚本。所有导入的脚本将被编译并存储在磁盘上。 Ben Blank的 重要补充:
每个人。我需要一个VBA代码来将excel数据转换为PDf到word doc,我写了一个宏,将excel打印为pdf,但现在我想从该pdf打印为word,所以简短的版本,Excel到PDF到Word。所有这些都是为了我想保留excel数据的格式
好的,我的vs代码正常,然后我重新启动了我的笔记本电脑,没有关闭应用程序。我打开后,几乎所有的文字都是白色的。这不是主题,因为它总是在黑暗中。我想我没有点击任何会导致这一点的重要内容。这样编码真的很难。顺便说一下,这是javascript文件。 正如您所看到的,绿色的注释是白色的,文件导入和橙色的文本是白色的“等待”是指紫色是白色。即使“const”也是白色的。有人知道如何解决这个问题吗?
我希望我的移动菜单上的向下箭头旋转180度,并在点击时朝上。我还想动画旋转平稳过渡。我使用Javascript切换一个". js-Rotate"类在我的". fa-角-向下"字体-真棒类。 JS函数中的最后一行控制此行为: 我尝试添加一个“transition:transform1s到“.fa角度向下”,但我没有运气。 CSS可通过以下链接的sass/组件/_navigation.scss获得:h