/// <summary> /// 获取印品价格 /// </summary> /// <param name="bookid"></param> /// <param name="couponid"></param> /// <param name="num"></param> /// <returns></returns> public static decimal GetBookPrice(int bookid, int couponid, int num) { Inpinke_Book c = DBBookBLL.GetBookByID(bookid); if (c == null) { throw new Exception(); } int plusPages = c.PageCount - c.Inpinke_Product.BasePages; plusPages = plusPages < 0 ? 0 : plusPages; decimal price = (c.Inpinke_Product.Price + (plusPages) * (c.Inpinke_Product.PlusPrice / c.Inpinke_Product.PlusPages)) * num; decimal couponPrices = 0; if (couponid != 0) { Inpinke_Coupon coupon = DBCouponBLL.GetCouponByID(couponid); if (coupon == null) { couponPrices = 0; } if (coupon.StartTime <= DateTime.Now && coupon.EndTime >= DateTime.Now) { couponPrices = coupon.DiscountPostage + coupon.DiscountPrice; } } price -= couponPrices; price = price < 0 ? 0 : price; return(price); }
public ActionResult CopyBook(int bookid) { Inpinke_Book model = DBBookBLL.GetBookByID(bookid); if (model.UserID != UserSession.CurrentUser.ID) { ViewBag.Msg = "对不起,您不能拷贝该印品。"; return(View("error")); } if (model.DonePages * 100 / model.PageCount < 90) { ViewBag.Msg = "对不起,当前印品完成度太低,不建议拷贝。您可以直接编辑该印品。"; return(View("error")); } BaseResponse br = DBBookBLL.CopyBook(bookid, UserSession.CurrentUser.ID); if (!br.IsSuccess) { ViewBag.Msg = br.Message; return(View("error")); } else { return(RedirectToAction("book", "my")); } }
public ActionResult CreateIntime(int prodid) { Inpinke_Product intime = DBProductBLL.GetProductByID(prodid); Inpinke_Book model = new Inpinke_Book() { UserID = UserSession.CurrentUser.ID, BookName = "我的时光", Author = UserSession.CurrentUser.NickName, BookDesc = "那些过往的时光,穿行在我的字里行间。无声的行走。无休。", PageCount = intime.BasePages, ProductID = prodid, ShowStatus = (int)ShowStatus.Public, BookCover = "/Content/pagestyle/images/intime_cover.png" }; BaseResponse br = DBBookBLL.AddBook(model); if (br.IsSuccess) { return(RedirectToAction("editor", new { bookid = model.ID })); } else { ViewBag.Msg = "对不起,定制印品失败,您可以重新登录再尝试下。"; return(View("error")); } }
/// <summary> /// 增加页面 /// </summary> /// <param name="bookid"></param> /// <param name="userid"></param> /// <param name="pagecount"></param> /// <returns></returns> public ActionResult AddBookPage(int bookid, int userid, int pagecount) { try { Inpinke_Book book = DBBookBLL.GetBookByID(bookid); if (book == null) { return(Content("{\"success\":false,\"msg\":\"添加书本页面失败,刷新页面再试试吧!\"}")); } if (book.PageCount >= pagecount) { return(Content("{\"success\":false,\"msg\":\"添加书本页面失败,刷新页面再试试吧!\"}")); } Inpinke_Book_Page bookpage = DBBookBLL.GetBookPageByPNum(book.PageCount, bookid); if (bookpage != null) { bookpage.PageData.SetAttributeValue("opnum", book.PageCount + "_" + (book.PageCount + 1)); bookpage.PageData = XElement.Parse(bookpage.PageData.ToString()); bookpage.SaveWhenSubmit(InpinkeDataContext.Instance); } book.PageCount = pagecount; book.SaveWhenSubmit(InpinkeDataContext.Instance); InpinkeDataContext.Instance.Submit(); return(Content("{\"success\":true,\"msg\":\"添加书本页面成功!\"}")); } catch (Exception ex) { Logger.Error(string.Format("AddBookPage Error:{0},BookID:{1},UserID:{2},PageCount:{3}", ex.ToString(), bookid, userid, pagecount)); return(Content("{\"success\":false,\"msg\":\"添加书本页面失败,刷新页面再试试吧!\"}")); } }
public ActionResult Editor(int bookid) { Inpinke_Book model = DBBookBLL.GetBookByID(bookid); if (model != null) { if (model.BookStauts == (int)BookStatus.Making) { ViewBag.Msg = "印品已下单印刷不能再做修改,您可以拷贝副本进行编辑/联系客服寻求帮助"; return(View("error")); } if (model.UserID != UserSession.CurrentUser.ID) { ViewBag.Msg = "对不起,您不能编辑该印品,因为那件印品好像不属于您。"; return(View("error")); } ViewBag.EditBook = model; } else { ViewBag.Msg = "对不起,没有找到您要编辑的印品。"; return(View("error")); } return(View()); }
/// <summary> /// 更新完成的页数 /// </summary> /// <param name="bookid"></param> public static void UpdateDonePage(int bookid) { try { Inpinke_Book model = GetBookByID(bookid); IList <Inpinke_Book_Page> list = GetBookPage(bookid); int donePage = 0; if (list != null) { foreach (Inpinke_Book_Page p in list) { if (p.PageNum == 0) { continue; } if (p.IsSkip) { donePage += 2; } else { donePage++; } } model.DonePages = donePage; } model.SaveWhenSubmit(InpinkeDataContext.Instance); InpinkeDataContext.Instance.Submit(); } catch (Exception ex) { Logger.Error(string.Format("UpdateDonePage BookID:{0}, Error:{1}", bookid, ex.ToString())); } }
// // GET: /Show/ public ActionResult Index(int?id) { if (id.HasValue) { Inpinke_Book model = DBBookBLL.GetBookByID(id.Value); if (model.ShowStatus == (int)ShowStatus.Pravice) { if (UserSession.CurrentUser != null && UserSession.CurrentUser.ID == model.UserID) { ViewBag.ShowBook = model; ViewBag.ShowBookPage = DBBookBLL.GetBookPage(id.Value); return(View()); } else { ViewBag.Msg = "对不起,当前印品不对外展出,您无法查看。"; return(View("error")); } } else { ViewBag.ShowBook = model; ViewBag.ShowBookPage = DBBookBLL.GetBookPage(id.Value); return(View()); } } else { ViewBag.Msg = "对不起,访问出错!"; return(View("error")); } }
//public ActionResult Error(string msg) //{ // if (string.IsNullOrEmpty(msg)) // { // ViewBag.Msg = msg; // } // return View(); //} public ActionResult Random() { Inpinke_Book model = DBBookBLL.GetRandomShowBook(); ViewBag.ShowBook = model; ViewBag.ShowBookPage = DBBookBLL.GetBookPage(model.ID); return(View("index")); }
public ActionResult Index(FormCollection col) { IList <Inpinke_Cart> list = DBCartBLL.GetUserCart(UserSession.CurrentUser.ID); try { string bookids = col["bookids"]; if (string.IsNullOrEmpty(bookids)) { ViewBag.Msg = "商品信息异常,请重新确认"; return(View(list)); } //bookids = bookids.TrimEnd(','); string[] bookidInfo = bookids.Split(','); foreach (string bookid in bookidInfo) { Inpinke_Book bModel = DBBookBLL.GetBookByID(int.Parse(bookid)); if (bModel != null) { Inpinke_Cart model = new Inpinke_Cart() { BookID = int.Parse(bookid), Num = int.Parse(col["num_" + bookid]), CouponID = int.Parse(col["coupon_select_" + bookid]), Envelope = int.Parse(col["envelope_" + bookid]), ProductID = bModel.ProductID, UserID = UserSession.CurrentUser.ID }; BaseResponse br = DBCartBLL.AddBook2Cart(model); if (!br.IsSuccess) { ViewBag.Msg = "商品信息异常,请重新确认"; return(View(list)); } } } return(RedirectToAction("OrderInfo")); } catch (Exception ex) { ViewBag.Msg = "商品信息确认失败,请稍后再试"; Logger.Error(string.Format("购物车-Index Error:{0}", ex.ToString())); return(View(list)); } }
/// <summary> /// 保存书本预设 /// </summary> /// <param name="bookid"></param> /// <param name="userid"></param> /// <param name="bookname"></param> /// <param name="bookauthor"></param> /// <param name="bookbrief"></param> /// <param name="bookfont"></param> /// <returns></returns> public ActionResult SaveBookSet(int bookid, int userid, string bookname, string bookauthor, string bookbrief, int bookfont) { Inpinke_Book book = DBBookBLL.GetBookByID(bookid); if (book != null) { book.BookName = bookname; book.BookDesc = bookbrief; book.Author = bookauthor; book.BookFont = bookfont; BaseResponse br = DBBookBLL.UpdateBook(book); return(Content("{\"success\":" + br.IsSuccess.ToString().ToLower() + ",\"msg\":\"" + br.Message + "\"}")); } else { return(Content("{\"success\":false,\"msg\":\"更新书本信息失败\"}")); } }
/// <summary> /// 更新书本信息 /// </summary> /// <param name="model"></param> /// <returns></returns> public static BaseResponse UpdateBook(Inpinke_Book model) { BaseResponse br = new BaseResponse(); br.IsSuccess = false; try { model.UpdateTime = DateTime.Now; model.SaveWhenSubmit(InpinkeDataContext.Instance); InpinkeDataContext.Instance.Submit(); br.IsSuccess = true; br.Message = "书本信息更新成功"; } catch (Exception ex) { br.IsSuccess = false; br.Message = "书本信息更新失败,请稍后再试"; Logger.Error(string.Format("UpdateBook Error:{0},BookID:{1}", ex.ToString(), model.ID)); } return(br); }
public ActionResult DelBook(int bookid) { Inpinke_Book model = DBBookBLL.GetBookByID(bookid, UserSession.CurrentUser.ID); if (model == null) { ViewBag.Msg = "对不起,您不能删除当前印品"; return(View("error")); } model.Status = (int)RecordStatus.Delete; BaseResponse br = DBBookBLL.UpdateBook(model); if (br.IsSuccess) { return(RedirectToAction("book", "my")); } else { ViewBag.Msg = br.Message; return(View("error")); } }
/// <summary> /// 添加书本到购物车 /// </summary> /// <param name="bookid"></param> /// <returns></returns> public ActionResult AddBook2Cart(int bookid) { Inpinke_Book book = DBBookBLL.GetBookByID(bookid); if (book == null) { ViewBag.Msg = "Sorry!没有找到您要购买的印品"; return(RedirectToAction("Index", new { msg = ViewBag.Msg })); } Inpinke_Cart myCart = new Inpinke_Cart() { UserID = book.UserID, BookID = book.ID, Num = 1, ProductID = book.ProductID }; IList <Inpinke_Product> plusList = DBProductBLL.GetPlusProduct(book.ProductID, ProductType.Envelope); if (plusList != null && plusList.Count() > 0) { myCart.Envelope = plusList.FirstOrDefault().ID; } IList <Inpinke_Product> plusList1 = DBProductBLL.GetPlusProduct(book.ProductID, ProductType.PlusStuff); if (plusList1 != null && plusList1.Count() > 0) { myCart.Envelope = plusList1.FirstOrDefault().ID; } BaseResponse br = DBCartBLL.AddBook2Cart(myCart); if (!br.IsSuccess) { ViewBag.Msg = br.Message; } return(RedirectToAction("Index", new { msg = ViewBag.Msg })); }
public ActionResult Checkbookdone(int userid, int bookid) { Inpinke_Book model = DBBookBLL.GetBookByID(bookid); if (model == null) { //ViewBag.Msg = "对不起没有找到您要下单印刷的印品,您可以在【<a href=\"/my/book\">我的照片书</a>】中直接选择要印刷的印品进行下单印刷。"; //return View("error"); return(Content("{\"success\":false,\"msg\":\"对不起没找到您要下单印刷印品,请尝试重新登录。\"}")); } if (model.UserID != userid) { return(Content("{\"success\":false,\"msg\":\"对不起您不能下单印刷当前印品,请尝试重新登录。\"}")); } if (model.PageCount > model.DonePages) { return(Content("{\"success\":false,\"msg\":\"书本还有" + (model.PageCount - model.DonePages) + "页没有编辑,将印成空白页。确认要下单印刷吗?\"}")); } else { return(Content("{\"success\":true,\"msg\":\"书本已完成编辑\"}")); } }
/// <summary> /// 创建照片书 /// </summary> /// <param name="model"></param> /// <returns></returns> public static BaseResponse AddBook(Inpinke_Book model) { BaseResponse br = new BaseResponse(); br.IsSuccess = true; try { model.CreateTime = DateTime.Now; model.UpdateTime = DateTime.Now; model.Status = (int)RecordStatus.Nomral; model.BookStauts = (int)BookStatus.Create; model.InsertWhenSubmit(InpinkeDataContext.Instance); InpinkeDataContext.Instance.Submit(); br.IsSuccess = true; br.Message = "创建照片书成功"; } catch (Exception ex) { br.IsSuccess = false; br.Message = "创建照片书失败,请稍后再试"; Logger.Error(string.Format("AddBook Error:{0}", ex.ToString())); } return(br); }
/// <summary> /// 设置印品是否分享 /// </summary> /// <param name="bookid"></param> /// <returns></returns> public ActionResult AjaxSetBookShowStatus(int bookid) { if (UserSession.CurrentUser == null) { return(Content("{\"success\":false,\"msg\":\"请重新登录\"}")); } Inpinke_Book model = DBBookBLL.GetBookByID(bookid, UserSession.CurrentUser.ID); if (model == null) { return(Content("{\"success\":false,\"msg\":\"印品分享设置失败\",\"bookid\":" + bookid + "}")); } if (model.ShowStatus == (int)ShowStatus.Public) { model.ShowStatus = (int)ShowStatus.Pravice; } else { model.ShowStatus = (int)ShowStatus.Public; } BaseResponse br = DBBookBLL.UpdateBook(model); return(Content("{\"success\":" + br.IsSuccess.ToString().ToLower() + ",\"msg\":\"" + br.Message + "\",\"bookid\":" + bookid + "}")); }
/// <summary> /// 保存页面缩略图 /// </summary> /// <param name="path"></param> /// <param name="pobj"></param> public string SavePageView(PageDataObj pobj, int userid, Inpinke_Book book, ref bool istxtO, int pageid) { int bookid = book.ID; string prodName = book.Inpinke_Product.ShortName.ToString().ToLower(); string dName = "/UserFile"; string path = Server.MapPath(dName); string filePath = path + "/" + userid + "/" + bookid; if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); } string fileName = "pview_" + pageid + ".jpg"; int orgWidth = ConfigMap.GetEditorAttr(prodName, "EditorWidth"); orgWidth = pobj.isskip == "true" ? orgWidth * 2 : orgWidth; int orgHeight = ConfigMap.GetEditorAttr(prodName, "EditorHeight"); int outWidth = ConfigMap.GetEditorAttr(prodName, "MiniViewWidth"); outWidth = pobj.isskip == "true" ? outWidth * 2 : outWidth; int outHeight = ConfigMap.GetEditorAttr(prodName, "MiniViewHeight"); ImageProcessBLL.CreatePageViewImage(pobj, filePath + "/" + fileName, orgWidth, orgHeight, outWidth, outHeight, ref istxtO); ImageProcessBLL.CreatePageViewImage(pobj, filePath + "/pthumb_" + pageid + ".jpg", orgWidth, orgHeight, orgWidth, orgHeight, ref istxtO); string returnName = dName + "/" + userid + "/" + bookid + "/" + fileName; if (pobj.pagenum == 0) { Image originalImage = Image.FromFile(filePath + "/pthumb_" + pageid + ".jpg"); Bitmap bitmap = new Bitmap(originalImage); ImageProcessBLL.CreateScaleImage(bitmap, 200, 200, filePath + "/cover200.jpg", false); originalImage.Dispose(); } return(returnName); }
/// <summary> /// 保存页面内容 /// </summary> /// <param name="bookid"></param> /// <param name="userid"></param> /// <param name="pagedata"></param> /// <returns></returns> public ActionResult SavePageData(int bookid, int userid, string pdata) { try { Inpinke_Book model = DBBookBLL.GetBookByID(bookid); PageDataObjs pageObjs = (PageDataObjs)JsonConvert.DeserializeObject(pdata, typeof(PageDataObjs)); if (pageObjs == null) { return(Content("{\"success\":false,\"msg\":\"保存失败,内容为空\"}")); } if (model.BookStauts == (int)BookStatus.Making) { return(Content("{\"success\":false,\"msg\":\"对不起当前印品已下单印制不能再编辑。\"}")); } string strReturn = "{\"success\":true,\"pviews\":["; string noneused = ""; string usedimgs = ""; List <int> noneUseImage = new List <int>(); List <int> usedimg = new List <int>(); foreach (PageDataObj pageObj in pageObjs.pdatas) { int pnum = pageObj.pagenum; Inpinke_Book_Page bookPage = DBBookBLL.GetBookPageByPNum(pnum, bookid); XElement root = new XElement("layout", new XAttribute("pnum", pnum), new XAttribute("styleid", pageObj.styleid), new XAttribute("isskip", pageObj.isskip), new XAttribute("opnum", pageObj.opagenum), new XAttribute("bgcolor", pageObj.bgcolor)); bool isCreate = false; if (bookPage == null) { bookPage = new Inpinke_Book_Page() { BookID = bookid, PageNum = pnum }; isCreate = true; } else { //原页面不是跨页,现在是跨页的,需要删除掉一个原页面 if (!bookPage.IsSkip && pageObj.isskip.ToLower() == "true" && pageObj.opagenum != "-1_0") { int opnum = int.Parse(pageObj.opagenum.Replace(pnum + "_", "")); Inpinke_Book_Page oBookPage = DBBookBLL.GetBookPageByPNum(opnum, bookid); if (oBookPage != null) { oBookPage.PageStatus = (int)PageStatus.Delete; DBBookBLL.UpdateBookPage(oBookPage); //修改页面图片使用次数 DBImageBLL.ChangeImageUsedNum(oBookPage.PageData, bookid, true, ref noneUseImage); } } //修改页面图片使用次数 DBImageBLL.ChangeImageUsedNum(bookPage.PageData, bookid, true, ref noneUseImage); } bookPage.IsSkip = pageObj.isskip.ToLower() == "false" ? false : true; //添加图片节点 foreach (PageImage image in pageObj.image) { XElement imageItem = new XElement("image"); PropertyInfo[] pis = image.GetType().GetProperties(); int urlIndex = image.src.ToLower().IndexOf("/userfile"); if (urlIndex > 0) { image.src = image.src.Substring(urlIndex); } foreach (PropertyInfo property in pis) { //设置节点属性 imageItem.SetAttributeValue(property.Name, property.GetValue(image, null)); } root.Add(imageItem); } //添加文字节点 foreach (PageText text in pageObj.text) { XElement textItem = new XElement("text"); PropertyInfo[] pis = text.GetType().GetProperties(); foreach (PropertyInfo property in pis) { //设置节点属性 textItem.SetAttributeValue(property.Name, property.GetValue(text, null)); } if (pageObj.pagenum == 0 && text.issingle == "true") { if (!string.IsNullOrEmpty(text.content) && text.conid == "txt_1") { model.BookName = text.content; } if (!string.IsNullOrEmpty(text.content) && text.conid == "txt_2") { model.SubBookName = text.content; } } root.Add(textItem); } bookPage.PageData = root; //修改页面图片使用次数 DBImageBLL.ChangeImageUsedNum(bookPage.PageData, bookid, false, ref usedimg); bool istxtO = false; //文字是否过多 if (isCreate) { int pID = DBBookBLL.GetMaxBookPageID() + 1; bookPage.PageImg = SavePageView(pageObj, userid, model, ref istxtO, pID); } else { bookPage.PageImg = SavePageView(pageObj, userid, model, ref istxtO, bookPage.ID); } strReturn += "{\"pnum\":" + pageObj.pagenum + ",\"src\":\"" + bookPage.PageImg + "\",\"isskip\":" + pageObj.isskip + ",\"istxtover\":" + istxtO.ToString().ToLower() + "},"; bookPage.PageStatus = (int)PageStatus.Normal; if (pageObj.pagenum == 0) { model.BookCover = "/UserFile/" + UserSession.CurrentUser.ID + "/" + bookid + "/cover200.jpg"; } if (isCreate) { DBBookBLL.AddBookPage(bookPage); //更新已完成的页数 DBBookBLL.UpdateDonePage(bookid); } else { DBBookBLL.UpdateBookPage(bookPage); } } noneused = string.Join(",", noneUseImage); usedimgs = string.Join(",", usedimg); strReturn = strReturn.TrimEnd(',') + "],\"noneusedimg\":[" + noneused + "],\"usedimg\":[" + usedimgs + "]}"; return(Content(strReturn)); } catch (Exception ex) { Logger.Error(string.Format("SavePageData BookID:{0},UserID:{1},Error:{2}", bookid, userid, ex.ToString())); return(Content("{\"success\":false,\"msg\":\"服务器异常保存失败,请稍后再试\"}")); } }
/// <summary> /// 调整书本顺序 /// </summary> /// <param name="bookid"></param> /// <param name="userid"></param> /// <param name="numorder"></param> /// <returns></returns> public ActionResult SetPageNumOrder(int bookid, int userid, string numorder, string delpnum) { try { string[] delpnums = delpnum.Split(','); string[] nums = numorder.Split(','); // list = DBBookBLL.GetBookPageByPNums(delpnums, bookid); Inpinke_Book book = DBBookBLL.GetBookByID(bookid); if (delpnums != null && delpnums.Count() > 0) { book.PageCount = book.PageCount - delpnums.Length; DBBookBLL.UpdateBook(book); DBBookBLL.DeleteBookPage(delpnum, bookid); DBBookBLL.UpdateDonePage(bookid); } IList <Inpinke_Book_Page> list = DBBookBLL.GetBookPageByPNums(nums, bookid); if (list != null) { Hashtable ht = new Hashtable(); foreach (Inpinke_Book_Page p in list) { ht[p.PageNum] = p.ID; } int[] intNums = nums.Where(e => int.Parse(e) >= 0).Select(e => int.Parse(e)).ToArray(); for (int i = 0; i < intNums.Length; i++) { if (ht[intNums[i]] == null) { continue; } Inpinke_Book_Page model = list.Where(e => e.ID == (int)ht[intNums[i]]).FirstOrDefault(); if (model != null) { model.PageNum = i; model.PageData.SetAttributeValue("pnum", i); string opnum = "-1_0"; if (i == 0) { opnum = "-1_0"; } else if (i == 1) { opnum = "-2_1"; } else if (i == intNums.Length - 1) { opnum = i.ToString() + "_-3"; } else if (i % 2 == 0) { opnum = i + "_" + (i + 1); } else { opnum = (i - 1) + "_" + i; } model.PageData.SetAttributeValue("opnum", opnum); model.PageData = XElement.Parse(model.PageData.ToString()); model.SaveWhenSubmit(InpinkeDataContext.Instance); } } } InpinkeDataContext.Instance.Submit(); return(Content("{\"success\":true,\"msg\":\"更新书本信息成功\"}")); } catch (Exception ex) { Logger.Error(string.Format("SetPageNumOrder BookID:{0} Error:{1}", bookid, ex.ToString())); return(Content("{\"success\":false,\"msg\":\"更新书本信息失败,刷新页面再试试吧!\"}")); } }
/// <summary> /// 生成书本pdf /// </summary> /// <param name="bookid"></param> /// <returns></returns> public static bool CreateBookPDF(int bookid) { Inpinke_Book model = DBBookBLL.GetBookByID(bookid); string pdfname = FilterSpecial(model.BookName); pdfname = OutPath + pdfname + "-" + model.ID + "-intime.pdf"; PDFProcessBLL pdfProcess = new PDFProcessBLL(PageWidth + 2 * TrimLineLength, PageHeight + 2 * TrimLineLength, pdfname); try { IList <Inpinke_Book_Page> pages = DBBookBLL.GetBookPage(bookid); pdfProcess.PaintScale = PaintScale; if (pages != null) { pages = pages.OrderBy(e => e.PageNum).ToList(); pdfProcess.doc.Open(); float boneWidth = backboneWidth * model.PageCount; pdfProcess.FlodPageWidth = flodPageWidth; pdfProcess.BackBoneWidth = boneWidth; pdfProcess.SinglePageWidth = PageWidth; pdfProcess.SinglePageHeight = PageHeight; for (int i = 0; i <= model.PageCount; i++) { Inpinke_Book_Page p = pages.Where(e => e.PageNum == i).SingleOrDefault(); if (p == null) { pdfProcess.PageWidth = PageWidth + 2 * TrimLineLength; pdfProcess.PageHeight = PageHeight + 2 * TrimLineLength; pdfProcess.doc.SetPageSize(new iTextSharp.text.Rectangle(pdfProcess.PageWidth, pdfProcess.PageHeight)); pdfProcess.doc.NewPage(); pdfProcess.PaintTirmLine(); } else { float pWidth = PageWidth; if (p.IsSkip) { pWidth = PageWidth * 2; if (i != 0) { i++; } } else if (i != 1 && i != model.PageCount) { pWidth = PageWidth * 2; } if (i == 0) { //封面和封底和折页书脊总宽度 pWidth = PageWidth * 2 + flodPageWidth * 2 + boneWidth; } pdfProcess.PageWidth = pWidth + 2 * TrimLineLength; pdfProcess.PageHeight = PageHeight + 2 * TrimLineLength; pdfProcess.doc.SetPageSize(new iTextSharp.text.Rectangle(pdfProcess.PageWidth, pdfProcess.PageHeight)); pdfProcess.doc.NewPage(); pdfProcess.PaintTirmLine(); PageDataObj pageObj = (PageDataObj)SerializeXmlHelper.DeserializeFromXml(p.PageData, typeof(PageDataObj)); pdfProcess.PaintPage(pageObj, 0); if (!p.IsSkip && i != 1 && i != model.PageCount) { p = pages.Where(e => e.PageNum == i + 1).SingleOrDefault(); if (p != null) { pageObj = (PageDataObj)SerializeXmlHelper.DeserializeFromXml(p.PageData, typeof(PageDataObj)); pdfProcess.PaintPage(pageObj, PageWidth); i++; } } } } pdfProcess.doc.Close(); } return(true); } catch (Exception ex) { pdfProcess.doc.Close(); Logger.Error(string.Format("CreateBookPDF BookID:{0},Error:{1}", bookid, ex.ToString())); return(false); } }