1
C#
のitextsharpライブラリを使用して、C言語でitextsharpライブラリを使用して、風景や肖像画のいずれの方向を識別することができますか
ここに私のコードは、PDF
ストリームを取得し、イメージを回転させていますが、私の問題はどのように我々は方向を特定できますか?
public static string ReadPdfFile(string fileName)
{
StringBuilder text = new StringBuilder();
if (File.Exists(fileName))
{
byte[] bytes = System.IO.File.ReadAllBytes(fileName);
using (MemoryStream ms = new MemoryStream())
{
Document doc = new Document();
PdfWriter writer = PdfWriter.GetInstance(doc, ms);
doc.Open();
PdfContentByte cb = writer.DirectContent;
PdfImportedPage page;
PdfReader reader;
reader = new PdfReader(bytes);
int pages = reader.NumberOfPages;
// loop over document pages
for (int i = 1; i <= pages; i++)
{
page = writer.GetImportedPage(reader, i);
//Rectangle pagesize = reader.GetPageSizeWithRotation(0);
AffineTransform scale = new AffineTransform(0, 1.0F, -1.0F, 0, 500, 500);
cb.AddTemplate(page,scale);
}
doc.Close();
var rotatedFile = ms.GetBuffer();
ms.Flush();
ms.Dispose();
string filepath = @"D:\test2.pdf";
File.Delete(filepath);
using (FileStream Writer = new System.IO.FileStream(filepath, FileMode.Create, FileAccess.Write))
{
Writer.Write(rotatedFile, 0, rotatedFile.Length);
string actualFilePath = "test2.pdf";
filepath = actualFilePath;
}
}
ご協力ありがとうございました!
ありがとうございます、スケールの考え方はありますか? pdfがポートレートの場合のように、 'AffineTransform scale = new AffineTransform(0,1.0F、-1.0F、0,500,500); cb.AddTemplate(page、scale);' それ以外の場合はランドスケープチェックをしないでください。私はデフォルトスケールをしたいので、スケールを与えたくありません。どうすればデフォルトスケールを与えることができますか? –
申し訳ありませんスケールについてはわかりません。 –