小编B. *_*non的帖子

iTextSharp中多行文本表单字段的对齐问题

我编写了一个应用程序,以编程方式从数据库中填写PDF模板中的表格并将结果保存到磁盘。除了未按预期呈现的任何多行文本字段之外,所有内容均正常运行。它们应该在顶部,并在行与行之间保持无间隔。

我得到的结果是在这里: 在此处输入图片说明

但是,当我使用任何PDF阅读器单击表单字段时,该字段都会根据我的期望进行自我更正。见: 在此处输入图片说明

我使用的代码非常漂亮。

            PdfStamper stamper = new PdfStamper(reader, ms, '\0', false);

            AcroFields form = stamper.AcroFields;
            List<DocumentField> fields = GetData(id);
            foreach (DocumentField field in fields)
            {
                form.SetField(field.FieldName, field.Value);
            }

            stamper.FormFlattening = true;
            stamper.Close();
            reader.Close();
Run Code Online (Sandbox Code Playgroud)

System.Environment.NewLine用来添加回程报酬。有谁知道是什么原因导致这种现象,以及解决方案使左上角对齐而没有大的间隙。谢谢。

更新解决方案

我删除了该字段并重新添加它,它的行为符合预期。实际上似乎是问题出在,我使用的是一种名为“ Cambria”的字体,如果我将该字段设置回使用该字体,则会返回该行为。

c# itext itextsharp

2
推荐指数
1
解决办法
3323
查看次数

如何使用Twilio从用户的手机号码发送文本?

我想以编程方式从我的Meteor应用发送短信/短信;很多人为此推荐twilio,并且有几种Meteor Twilio软件包(可通过大气和/或谷歌搜索/ bing找到)。我不知道这些软件包中的一个是否绝对比另一个软件包更好,但是至少到目前为止,我正在使用abhiaayer:meteor-twilio软件包。

我担心的是,当您创建Twilio帐户时,他们会为您分配一个“发件人”电话号码(您显然不能使用自己的电话号码)。也许我误会了它的工作原理,但是在我走得太远之前,我想知道SMS的发送者(我的应用程序用户IOW)是否可以将电话号码用作“来自” /发件人的电话号码。

毕竟,我的应用程序的全部目的是允许用户向朋友/家人发送多个相同的文本(例如“你在哪里?”或“你还好吗?”),然后从他们那里得到答复。 (通过他的电话,而不是Twilio提供的号码)。

如果可以将Twilio与您自己的电话号码一起用作“发件人” /发送号码,是否有人对Meteor软件包的首选项(abhiaayer,andreioprisan,DispatchMe)有任何建议,以及如何从Meteor做到这一点?

我想像,无论使用什么软件包,基本代码都差不多。例如,这是andreioprisan包中的一个示例

twilio = Twilio(ACCOUNT_SID, AUTH_TOKEN);
  twilio.sendSms({
    to:'+16515556677', // Any number Twilio can deliver to
    from: '+14506667788', // A number you bought from Twilio and can use for outbound communication
    body: 'word to your mother.' // body of the SMS message
  }, function(err, responseData) { //this function is executed when a response is received from Twilio
    if (!err) { // "err" is an error …
Run Code Online (Sandbox Code Playgroud)

sms twilio meteor

2
推荐指数
1
解决办法
1214
查看次数

如何使用 LINQ 对通用列表中的值求和?

我有这门课:

public class ItemsForMonthYear
{
    public String ItemDescription { get; set; }
    public String monthYr { get; set; }
    public int TotalPackages { get; set; }
    public Decimal TotalPurchases { get; set; }
    public Decimal AveragePrice { get; set; }
    public Double PercentOfTotal { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

...我正在其中存储数据。我有一个用于存储其中 N 个的通用列表:

List<ItemsForMonthYear> itemsForMonthYearList;
Run Code Online (Sandbox Code Playgroud)

...然后我后来从该列表中读取以填充电子表格,这非常简单:

totPackagesCell.Value2 = ifmy.TotalPackages;
totPurchasesCell.Value2 = ifmy.TotalPurchases;
avgPriceCell.Value2 = ifmy.AveragePrice;
Run Code Online (Sandbox Code Playgroud)

...但所需的下一个单元格 val 是基于给定月年的所有 TotalPurchases 值计算得出的值。所以我需要计算所有 ItemsForMonthYear“记录”的“总百分比”值,具有相同的monthYr值。在 SQL 我可以做这样的事情:

SELECT SUM(TotalPurchases) FROM ItemsForMonthYear WHERE monthYr = 'Apr 14' …
Run Code Online (Sandbox Code Playgroud)

c# linq generics

2
推荐指数
1
解决办法
5817
查看次数

两个同时发生的Ajax请求导致同一操作错误

我有以下行动

public async Task<ActionResult> Cart(bool refresh = false, bool mobile = false)
{

   var user = await Auth.GetUserAsync();
   //rest of the code

}
Run Code Online (Sandbox Code Playgroud)

由2个ajax调用同时调用两次(一个用于呈现移动局部,其他正常页面).

$(document).ready(function () {
   $("basket").html('<i class="fa fa-spinner fa-spin"></i>');
   $('basket').load(PartialURL + "/Cart");
   $('MobileBasket').load(PartialURL + "/Cart?mobile=true");
Run Code Online (Sandbox Code Playgroud)

});

真正的问题出现在Auth.GetUserAsync()功能上.

码:

  public static async Task<User> GetUserAsync()
    {

            if (HttpContext.Current == null || HttpContext.Current.Request == null
                || HttpContext.Current.User == null || HttpContext.Current.Request.IsAuthenticated == false)
                return null;


            //if session does not exist, but user is logged in, fill session information
            if …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc async-await

2
推荐指数
1
解决办法
185
查看次数

如何在UWP中的"Enter"上关闭ContentDialog

我一直在试图让一个简单的ContentDialogTextBox关闭当用户点击Enter,同时仍然在TextBox.可悲的是TextBox,即使ContentDialog响应,它甚至没有a也无法工作Esc.

我希望有一种方法可以在KeyDownHandler中设置一个Result TextBox,但是看起来ContentDialog缺少这个?!

c# uwp

2
推荐指数
1
解决办法
4851
查看次数

如何防止"可能的分数损失"?

使用此代码(QtyShipped和QtyOrdered是整数,_percentageOfQtyShipped是双精度):

_percentageOfQtyShipped = frbdcbl.QtyShipped / frbdcbl.QtyOrdered;
Run Code Online (Sandbox Code Playgroud)

...我得到了一些"div by 0"错误,所以我重构了它:

double _percentageOfQtyShipped = 0.0;
if ((frbdcbl.QtyShipped != 0) && (frbdcbl.QtyOrdered != 0))
{
    _percentageOfQtyShipped = frbdcbl.QtyShipped/frbdcbl.QtyOrdered;
}
Run Code Online (Sandbox Code Playgroud)

......但现在我收到了来自Resharper的警告," 可能会失去分数 "

然而,与Resharper通常的方法相反,它没有提供修复它的方法(而不是在标记的代码行的阴沟中的黄色灯泡,我得到一个灰色的扳手); 那么我需要对此代码进行哪些更改以防止"可能丢失分数"?

UPDATE

我使用了Secret Agent Man#1666620的代码,并乘以100来获得62.5而不是0.625之类的值,如下所示:

double _percentageOfQtyShipped = 0.0;
if ((frbdcbl.QtyShipped != 0) && (frbdcbl.QtyOrdered != 0))
{
    _percentageOfQtyShipped = (frbdcbl.QtyShipped / (double)frbdcbl.QtyOrdered)*100;
}
Run Code Online (Sandbox Code Playgroud)

c# resharper fractions

2
推荐指数
1
解决办法
3355
查看次数

为什么我得到“无法绑定到新的显示成员”。用这个代码?

我有这个代码将字典的值分配给组合框:

private void PopulateComboBoxWithSchedulableWeeks()
{
    int WEEKS_TO_OFFER_COUNT = 13;
    BindingSource bs = new BindingSource();
    Dictionary<String, DateTime> schedulableWeeks = 
GetWeekBeginningsDict(WEEKS_TO_OFFER_COUNT);
    bs.DataSource = schedulableWeeks;
    comboBoxWeekToSchedule.DataSource = bs;
    comboBoxWeekToSchedule.DisplayMember = "Key";
    comboBoxWeekToSchedule.ValueMember = "Value";
}

public static Dictionary<String, DateTime> GetWeekBeginningsDict(int 
    countOfWeeks)
{
    DateTime today = DateTime.Today;
    int daysUntilMonday = ((int)DayOfWeek.Monday - (int)today.DayOfWeek + 7) 
        % 7;
    DateTime nextMonday = today.AddDays(daysUntilMonday);
    Dictionary<String, DateTime> mondays = new Dictionary<String, DateTime>
();
    if (!IsAssemblyOrConventionWeek(nextMonday))
    {
        mondays.Add(nextMonday.ToLongDateString(), nextMonday);
    }

    for (int i = 0; i < countOfWeeks; i++) …
Run Code Online (Sandbox Code Playgroud)

c# combobox dictionary bindingsource

2
推荐指数
1
解决办法
3713
查看次数

C#在嵌套列表中丢失值

我的int(List<List<int>>)嵌套列表出现了一个非常奇怪的问题.在我放入超过100万个列表之后的某个时刻,他们都松散了它们的价值,即它们中有0个元素.真的很奇怪吧?我怀疑我在里面放了太多的清单.但是我推出了一个if语句,它将检查嵌套列表长度是否正好是100万,并在其中添加了一个断点.它最终超出了嵌套列表的能力并非如此,它完全是我头脑中的混乱.我将在这里发布代码,以便我可以尝试解释

        //it will iterate 8^8 times - 16.7 million times
        private static List<List<int>> minMinatRed = new List<List<int>>();
        private static List<List<int>> minMinataKolona = new List<List<int>>();
        var tempHodove = new List<Tuple<bool, int[]>>();
        int novMinatRed = red;
        int novaMinataKolona = kolona;
        for (int i = 0; i < numberOfVariations; i++)
        {
            tempHodove.Clear();
            var hodove = UpdateList(novMinatRed, novaMinataKolona);
            int x = i;
            for (int j = 0; j < size; ++j)
            {
                result[j] = tempArr[x % size];
                x /= size;
            }
            for …
Run Code Online (Sandbox Code Playgroud)

c# collections exception list

2
推荐指数
1
解决办法
91
查看次数

将 SSRS 报告导出到 Excel 时如何指定工作表名称?

我可以使用此处的信息将包含多个子报表的报表导出到 Excel,并将每个子报表放在单独的选项卡/工作表上(将每个子报表放置在 Rectangle 控件中并将其 PageBreak 属性设置为“Start”)。

我希望设置矩形的PageName属性会将工作表名称设置为我在那里指定的名称,但没有 - 它们只是“ Sheet 2 ”、“ Sheet 3 ”等。

那么,如何为工作表名称分配特定值,以便在将 SSRS 报表及其子报表导出到 Excel 时使用这些值?

更新

尝试汉诺威拳头的建议,我设置了矩形的 PageName 属性:

在此输入图像描述

...但该文件仍然是使用通用工作表名称创建的:

在此输入图像描述

excel spreadsheet subreport reporting-services

2
推荐指数
1
解决办法
1万
查看次数

为什么在关闭表单之前调用 FormDeactivate?

我有一个使用 Excel Interop 生成 Excel 电子表格的 Winforms 应用程序。

当我尝试以这种方式保存工作表时:

_xlBook.SaveAs(filename, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
Run Code Online (Sandbox Code Playgroud)

...它会失败,告诉我,“ System.Runtime.InteropServices.InvalidComObjectException 未处理 HResult=-2146233049 Message=COM 对象已与其底层 RCW 分离,无法使用。

不过,这没有多大意义——我并没有对线程之类的东西做任何花哨的事情;这是一个非常简单的香草实用程序。代码中唯一引用 _xlBook 的其他地方是:

1)

private Excel.Workbook _xlBook;
Run Code Online (Sandbox Code Playgroud)

2)

_xlBook = _xlApp.Workbooks.Add(Type.Missing);
Run Code Online (Sandbox Code Playgroud)

3)

_xlSheets = _xlBook.Worksheets;
_xlSheet = (Excel.Worksheet)_xlSheets.Item[1];
Run Code Online (Sandbox Code Playgroud)

4)

_xlBook.Close(false);
Marshal.ReleaseComObject(_xlBook);
Run Code Online (Sandbox Code Playgroud)

_xlBook 被处理的最后一部分是从表单的 Deactivate 事件调用的,它是:

private void FormMain_Deactivate(object sender, EventArgs e)
{
    DeinitializeExcelObjects();
}
Run Code Online (Sandbox Code Playgroud)

问题是(我在所有引用 _xlBook 的地方放置断点后发现的)FormMain_Deactivate() 在 _xlBook.SaveAs() 被调用之前被调用,当点击“运行”按钮时调用。

一旦我在 FormMain_Deactivate() 中注释掉对 DeinitializeExcelObjects() 的调用,并在调用 _xlBook.SaveAs() 之后立即调用它,它就可以正常工作 - …

c# excel-interop winforms-interop winforms

2
推荐指数
1
解决办法
271
查看次数